我该如何解析C#中没有类的json。我不知道该使用数组还是其他任何东西。
这是我要解析的json结果
{
"success": true,
"status": 200,
"message": "SUCCESS",
"response": {
"message": "Device Registered",
"data": [
{
"ID": "607dbb9e08b4c22a",
"Type_ID": "657911C6-AFA5-4AC4-922F-39E56CCB28CC",
"Name": "Genymotion Google Nexus 5X",
"Active": "1",
"Insert_User": "Default",
"Insert_Date": "2019-10-18 16:33:01.650",
"Update_User": "Default",
"Update_Date": "2019-10-18 16:33:01.650"
}
]
}
}
答案 0 :(得分:0)
您可以使用 Json.NET https://www.newtonsoft.com/json
文档在这里
https://www.newtonsoft.com/json/help/html/SerializingJSON.htm
简短说明:
对于序列化(对象到字符串):
string text = JsonConvert.SerializeObject(object);
对于反序列化(字符串到对象)
var jsonobject = JsonConvert.DeserializeObject(jsonstring);
如果要反序列化匿名类型,则可以使用此文档,这很简单
https://www.newtonsoft.com/json/help/html/DeserializeAnonymousType.htm
答案 1 :(得分:0)
您可以使用dynamic代替创建对象。但是动态对象比普通类花费更多的资源。如果您有性能方面的问题,我不建议您;如果没有,您可以去:
string json = @"[
{
'Title': 'Json.NET is awesome!',
'Author': {
'Name': 'James Newton-King',
'Twitter': '@JamesNK',
'Picture': '/jamesnk.png'
},
'Date': '2013-01-23T19:30:00',
'BodyHtml': '<h3>Title!</h3>\r\n<p>Content!</p>'
}
]";
dynamic blogPosts = JArray.Parse(json);
dynamic blogPost = blogPosts[0];
string title = blogPost.Title;
Console.WriteLine(title);
// Json.NET is awesome!
string author = blogPost.Author.Name;
Console.WriteLine(author);
// James Newton-King
DateTime postDate = blogPost.Date;
Console.WriteLine(postDate);
// 23/01/2013 7:30:00 p.m.
有关更多文档,请查看here。
答案 2 :(得分:0)
谢谢大家,我只是弄清楚我自己。 这就是我的工作。
public async Task<string> CheckDevice(string id)
{
var uri = new Uri(string.Format(Constant.CheckDevicesRegistration + "id=" + id, string.Empty));
try
{
var response = await client.GetAsync(uri);
if (response.IsSuccessStatusCode)
{
var result = await response.Content.ReadAsStringAsync();
var jsonData = (JObject)JsonConvert.DeserializeObject(result);
var message = jsonData["response"]["message"].Value<string>();
resultService = message;
}
}
catch
{
resultService = "Connection-Error";
}
return resultService;
}
答案 3 :(得分:-1)
您可以使用JObject解析json
dynamic response = JObject.Parse(jsonString);
success = response ?.success;