Ass*_*don 28 .net c# json deserialization
我有一个JSON字符串,我需要一些帮助来反序列化它.
没有什么对我有用..这是JSON
{
"response": [{
"loopa": "81ED1A646S894309CA1746FD6B57E5BB46EC18D1FAff",
"drupa": "D4492C3CCE7D6F839B2BASD2F08577F89A27B4ff",
"images": [{
"report": {
"nemo": "unknown"
},
"status": "rock",
"id": "7e6ffe36e-8789e-4c235-87044-56378f08m30df",
"market": 1
},
{
"report": {
"nemo": "unknown"
},
"status": "rock",
"id": "e50e99df3-59563-45673-afj79e-e3f47504sb55e2",
"market": 1
}
]
}]
}
Run Code Online (Sandbox Code Playgroud)
我有一个类的例子,但我不必使用这些类,我不介意使用其他类.这些是类:
public class Report
{
public string nemo { get; set; }
}
public class Image
{
public Report report { get; set; }
public string status { get; set; }
public string id { get; set; }
public int market { get; set; }
}
public class Response
{
public string loopa { get; set; }
public string drupa{ get; set; }
public Image[] images { get; set; }
}
public class RootObject
{
public Response[] response { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想提一下,我已经有了Newtonsoft.Json,所以我可以使用那里的一些功能.
我怎样才能做到这一点?谢谢.
小智 44
我在我的代码中使用这样的,它工作正常
下面是您需要编写的一段代码
using System.Web.Script.Serialization;
JavaScriptSerializer oJS = new JavaScriptSerializer();
RootObject oRootObject = new RootObject();
oRootObject = oJS.Deserialize<RootObject>(Your JSon String);
Run Code Online (Sandbox Code Playgroud)
ste*_*r84 38
应该是这样的:
var jobject = JsonConvert.DeserializeObject<RootObject>(jsonstring);
Run Code Online (Sandbox Code Playgroud)
您可以将json字符串粘贴到此处:http://json2csharp.com/以检查您的类是否正确.
fil*_*pko 18
如果您使用C#2010或更高版本,则可以使用动态类型:
dynamic json = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonstring);
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用点表示法访问动态对象中的属性和数组:
string nemo = json.response[0].images[0].report.nemo;
Run Code Online (Sandbox Code Playgroud)
首先安装newtonsoft.json包Visual Studio使用NuGet Package Manager然后添加以下代码:
ClassName ObjectName = JsonConvert.DeserializeObject < ClassName > (jsonObject);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
151829 次 |
| 最近记录: |