JProperty不会为值生成双引号



我正在尝试创建一个不基于任何类或对象的JSON响应。它在本质上是非常有活力的。因此,我开始使用Newtonsoft.Json.Linq中的JObject。虽然它生成了正确的构造,但它不会用双引号封装值。如何在值周围强制使用这些双引号?

以下是我用于测试的一小段代码:

var job = new JObject();
job.Add(new JProperty("name", "filip"));
string nm = "Rob";
job.Add(new JProperty("name2", nm));
job.Add(new JProperty("name4", new JValue("Samantha")));

结果:

{"name":filip,"name2":Rob,"name4":Samantha}

我所期望的:

{"name":"filip","name2":"Rob","name4":"Samantha"}

下面是一个完整的例子:

public class DynJSonService : NancyModule
{
public DynJSonService()
{
Get["/dynjson"] = _ =>
{
var job = new JObject();
job.Add(new JProperty("name", "filip"));
string nm = "Rob";
job.Add(new JProperty("name2", nm));
job.Add(new JProperty("name4", new JValue("Samantha")));
return job;
};
}
}

当冲浪到url时,通过浏览器会得到以下响应:localhost:4439/FilipsApps/dynjson

{"name":filip,"name2":Rob,"name4":Samantha}

Nancy默认在内部使用SimpleJson序列化程序,它不知道如何正确处理JObjectJProperty。如果您想使用这些,您应该将Nancy配置为使用Json.Net(也称为Newtonsoft.Json(序列化程序。有一个Nancy.Serialization.JsonNetNuGet包。安装该软件包后,它应该可以正常工作。如果您需要自定义Json.Net序列化程序的设置,那么readme.md中有相应的说明。

相关内容

  • 没有找到相关文章

最新更新