在 C# 中将字符串转换为 JSON

Converting a string to JSON in C#

我正在尝试使用 Simple JSON 将此字符串转换为 JSON :

"{\"objects\":[{\"id\":1,\"title\":\"Book\",\"position_x\":0,\"position_y\":0,\"position_z\":0,\"rotation_x\":0,\"rotation_y\":0,\"rotation_z\":0,\"created\":\"2016-09-21T14:22:22.817Z\"},{\"id\":2,\"title\":\"Apple\",\"position_x\":0,\"position_y\":0,\"position_z\":0,\"rotation_x\":0,\"rotation_y\":0,\"rotation_z\":0,\"created\":\"2016-09-21T14:22:52.368Z\"}]}"

不幸的是,Visual Studio 似乎没有交互式调试控制台。比如,将调试器放在一条线上,然后在实时交互式控制台中单步执行该部分代码。否则我就可以在 SimpleJSON 的库中进行实验,看看如何让它工作。无论如何,如果我错了,请纠正我!

虽然那是不可能的,但有人知道如何实现吗?我试过这个:

JSONData jsonData = new JSONData(my_json_string);

但这会进一步转义字符串并将其保留为字符串:

"\"{\\"objects\\":[{\\"id\\":1,\\"title\\":\\"Book\\",\\"position_x\\":0,\\"position_y\\":0,\\"position_z\\":0,\\"rotation_x\\":0,\\"rotation_y\\":0,\\"rotation_z\\":0,\\"created\\":\\"2016-09-21T14:22:22.817Z\\...

我是 C# 的新手,但令我惊讶的是,C# 没有任何原生功能可以使像解析 JSON 这样常见的东西更易于访问。有吗?

首先,创建数据模型。您可以使用 json2sharp,非常有用的工具。

public class Item
{
    public int id { get; set; }
    public string title { get; set; }
    public int position_x { get; set; }
    public int position_y { get; set; }
    public int position_z { get; set; }
    public int rotation_x { get; set; }
    public int rotation_y { get; set; }
    public int rotation_z { get; set; }
    public string created { get; set; }
}

接下来使用Newtonsoft.Json并调用反序列化方法。

var list = JsonConvert.DeserializeObject<List<Item>>(Yourjson);

您尝试过系统实用程序吗?

喜欢这个https://msdn.microsoft.com/ru-ru/library/system.json.jsonvalue.parse%28v=vs.95%29.aspx

您可以使用

public static JsonValue Parse(string jsonString)

JsonValue class 然后转换为 jsonobject 或任何你想要的。

题目问的是如何将一个字符串转换成一个JSON对象...这个可以不使用Class或者数据模型来实现,如下:

using Newtonsoft.Json;

string str = "{\"objects\":[{\"id\":1,\"title\":\"Book\",\"position_x\":0,\"position_y\":0,\"position_z\":0,\"rotation_x\":0,\"rotation_y\":0,\"rotation_z\":0,\"created\":\"2016-09-21T14:22:22.817Z\"},{\"id\":2,\"title\":\"Apple\",\"position_x\":0,\"position_y\":0,\"position_z\":0,\"rotation_x\":0,\"rotation_y\":0,\"rotation_z\":0,\"created\":\"2016-09-21T14:22:52.368Z\"}]}";
dynamic json = JsonConvert.DeserializeObject(str);

现在,您可以按如下方式访问json内容:

json["objects"][0]["title"];

returns "Book"

"Interactive Debugging Console" 可以使用 C# 代码的一个选项是 Xamarin Workbooks... microsoft.com/en-us/xamarin/tools/workbooks/

Xamarin Workbooks provide a blend of documentation and code that is perfect for experimentation, learning, and creating... blah blah blah