c#-用NewtonSoft在一行中生成JSON对象

我正在使用JSON库NewtonSoft生成JSON字符串:

JObject out = JObject.FromObject(new
            {
                typ = "photos"
            });

            return out.ToString();

输出:

{
  "typ": "photos"
}

我的问题:是否可以在一行中获得输出,如:

{"typ": "photos"}
Calimero asked 2019-11-19T03:20:32Z
5个解决方案
75 votes

您可以使用Formatting的重载,该重载将Formatting作为参数:

JObject obj = JObject.FromObject(new
{
    typ = "photos"
});

return obj.ToString(Formatting.None);
tpeczek answered 2019-11-19T03:20:54Z
58 votes
var json = JsonConvert.SerializeObject(new { typ = "photos" }, Formatting.None);
L.B answered 2019-11-19T03:21:11Z
6 votes

这是简化JSON的一种方法,即您只有一个字符串用于:

var myJson = "{\"type\"    :\"photos\"               }";
JObject.Parse(myJson).ToString(Newtonsoft.Json.Formatting.None)

输出:

{"type":"photos"}
DLeh answered 2019-11-19T03:21:36Z
1 votes

我不确定这是否是您的意思,但是我要做的是:

string postData = "{\"typ\":\"photos\"}";

编辑:搜索后,我在Json.Net上找到了它:

string json = @"{
  CPU: 'Intel',
  Drives: [
    'DVD read/writer',
    '500 gigabyte hard drive'
  ]
}";

JObject o = JObject.Parse(json);

也许您可以使用此网站上的信息。

但是我不确定输出是否在一行上...祝您好运!

Quispie answered 2019-11-19T03:22:19Z
0 votes

如果这里的某个人不想使用MVC中的任何外部库,则可以使用内置的System.Web.Script.Serialization.JavaScriptSerializer

一个班轮是:

var JsonString = new JavaScriptSerializer().Serialize(new { typ = "photos" });
Anup Sharma answered 2019-11-19T03:22:50Z
translate from https://stackoverflow.com:/questions/13917247/generate-json-object-with-newtonsoft-in-a-single-line