Json反序列化为类
本文关键字:反序列化 Json | 更新日期: 2023-09-27 18:25:20
我有动态json结果,我想为该json字符串创建一个对象。之后,我将用反序列化的对象填充该对象。这是json字符串:
[{"_34":{
"Id":"34",
"Z":["42b23718-bbb8-416e-9241-538ff54c28c9","c25ef97a-89a5-4ed7-89c7-9c6a17c2413b"],
"C":[]
}
}]
这个物体看起来怎么样?或者如何将此字符串反序列化为类。
谢谢。
如果您喜欢开源,可以使用开箱即用的JavaScriptSerializer或json.net。
根据Darin Dimitrov的样本,以下是如何使用json.net:
using System.Collections.Generic;
using System;
using Newtonsoft.Json;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string json = "[{'"_34'":{ '"Id'":'"34'", '"Z'":['"42b23718-bbb8-416e-9241-538ff54c28c9'",'"c25ef97a-89a5-4ed7-89c7-9c6a17c2413b'"], '"C'":[] } }]";
var result = JsonConvert.DeserializeObject<Dictionary<string, Result>[]>(json);
Console.WriteLine(result[0]["_34"].Z[1]);
}
}
public class Result
{
public string Id { get; set; }
public string[] Z { get; set; }
public string[] C { get; set; }
}
}
这里有一个例子:
using System;
using System.Collections.Generic;
using System.IO;
using System.Web.Script.Serialization;
public class Result
{
public string Id { get; set; }
public string[] Z { get; set; }
public string[] C { get; set; }
}
class Program
{
static void Main()
{
var json = @"[{""_34"": {""Id"": ""34"",""Z"": [""42b23718-bbb8-416e-9241-538ff54c28c9"",""c25ef97a-89a5-4ed7-89c7-9c6a17c2413b""],""C"": []}}]";
var serializer = new JavaScriptSerializer();
var result = serializer.Deserialize<Dictionary<string, Result>[]>(json);
Console.WriteLine(result[0]["_34"].Z[1]);
}
}
目标类
public class Target
{
public string Id;
public List<string> Z;
public List<string> C;
}
反序列化
var ser = new JavaScriptSerializer();
var obj = ser.Deserialize<Target>(json);
在eval函数中包装字符串:
var myObject = eval('(' + myJSONtext + ')');