我有动态json结果,我想为该json字符串创建一个对象。之后,我将用反序列化的对象填充该对象。这是json字符串:
[{"_34":{
"Id":"34",
"Z":["42b23718-bbb8-416e-9241-538ff54c28c9","c25ef97a-89a5-4ed7-89c7-9c6a17c2413b"],
"C":[]
}
}]
对象是怎样的?或者我如何将此字符串反序列化为类。
感谢。
答案 0 :(得分:3)
如果您喜欢开源的话,可以使用开箱即用的JavaScriptSerializer或json.net。
基于Darin Dimitrov's sample,以下是您对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; }
}
}
答案 1 :(得分:1)
以下是一个例子:
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]);
}
}
答案 2 :(得分:0)
目标类
public class Target
{
public string Id;
public List<string> Z;
public List<string> C;
}
<强>反序列化强>
var ser = new JavaScriptSerializer();
var obj = ser.Deserialize<Target>(json);
答案 3 :(得分:-2)
将你的字符串包装在eval函数中:
var myObject = eval('(' + myJSONtext + ')');