使用NewtonSoft在一行中生成JSON对象

时间:2012-12-17 15:40:48

标签: c# json json.net

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

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

            return out.ToString();

输出:

{
  "typ": "photos"
}

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

{"typ": "photos"}

5 个答案:

答案 0 :(得分:71)

您可以使用以JObject.ToString()作为参数的Formatting重载:

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

return obj.ToString(Formatting.None);

答案 1 :(得分:52)

var json = JsonConvert.SerializeObject(new { typ = "photos" }, Formatting.None);

答案 2 :(得分:4)

这里有一个简化JSON的单线程,你只有一个字符串:

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

输出:

{"type":"photos"}

答案 3 :(得分:1)

我不确定这是不是你的意思,但我做的是这个::

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

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

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

JObject o = JObject.Parse(json);

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

但我不确定,如果输出会在一行......祝你好运!

答案 4 :(得分:0)

如果此处有人不想在MVC中使用任何外部库,他们可以使用内置的System.Web.Script.Serialization.JavaScriptSerializer

其中一个班轮将是:

var JsonString = new JavaScriptSerializer().Serialize(new { typ = "photos" });