[英]Deserializing JSON to .NET
如何将此类 json 反序列化为 C# 上的对象?
{ "AND":[ { "AND":[ { "AND":[ { "AND":[ { "AND":[ { "AND":[ { "OR":[ { "OR":[ "Title", "Login" ] }, "LoginNote" ] }, "BossTitle" ] }, { "OR":[ "Phone", "TeleGorod" ] } ] }, "Room" ] }, "Division" ] }, "TabelnyiNomer" ] }, "Filter\"" ] }
你可以玩dynamic
类型,但我认为它对你没有帮助。
class Program
{
static void Main(string[] args)
{
string unknownJson1 = "{\r\n \"Id\": \"1e4495d3-4cd1-4bf2-9da6-4acee2f7a70e\",\r\n \"Customers\": [\r\n \"Alice\",\r\n \"Bob\",\r\n \"Eva\"\r\n ]\r\n}";
string unknownJson2 = "{\"AND\": [\"_ x041f__x0435__x0440__x0432__x04\", {\"AND\": [\"_ x0418__x0437__x0433__x043e__x04\", {\"AND\": [\"_ x041e__x043f__x0438__x0441__x04\", {\"AND\": [\"_ x041a__x043e__x0434_\", \"Title\"]}]}]}] } ";
JsonSerializer serializer = new JsonSerializer();
dynamic deserializedObject;
using (var stringReader = new StringReader(unknownJson2))
{
using (var jsonReader = new JsonTextReader(stringReader))
{
deserializedObject = serializer.Deserialize(jsonReader);
}
}
Console.ReadKey(true);
}
}
quicktype 的CLI 支持 JSON 模式作为导入格式,这可以帮助您表示您在此处解析的树数据结构。 我会研究为什么它没有被自动检测到,但这是你的模型:
public class Tree
{
[JsonProperty("AND")]
public Leaf[] And { get; set; } // Could be null
[JsonProperty("OR")]
public Leaf[] Or { get; set; } // Could be null
}
public struct Leaf
{
public string String; // Could be null
public Top Tree; // Could be null
}
你的 JSON 应该这样解析,虽然我没有测试过。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.