C# NewtonSoft.JSON反序列化不起作用
我有以下C# NewtonSoft.JSON反序列化不起作用,c#,json,json.net,C#,Json,Json.net,我有以下JSON字符串: { [ { "error": { "typeofdevice": 678, "valueconvert": "", "message": "oops something went wrong" } } ] } 反序列化此消息并获取“Message”值的最佳方法是什
JSON
字符串:
{
[
{
"error": {
"typeofdevice": 678,
"valueconvert": "",
"message": "oops something went wrong"
}
}
]
}
反序列化此消息并获取“Message”值的最佳方法是什么
我试过:
JToken token = JArray.Parse(args.Result);
string message = (string)token["description"];
但是它说
数组缺少索引,因此无法工作
菜鸟问题我知道。。但我不明白:S
Grtz.使用系统;
使用System.Collections.Generic;
命名空间控制台应用程序2
{
使用Newtonsoft.Json;
内部课程计划
{
私有静态void Main(字符串[]args)
{
字符串jsonString=
"["
+ "{"
+“\“错误\”:”
+ " {"
+“设备类型”:678
+“\“valueconvert\:\”\,”
+““消息”:“哎呀,出了点问题”
+ " }"
+ "}"
+ "]";
List data=JsonConvert.DeserializeObject(jsonString);
Console.WriteLine(数据[0]。错误。设备类型);
}
公共类数据
{
公共错误{get;set;}
}
公共类错误
{
公共字符串类型设备{get;set;}
公共字符串valueconvert{get;set;}
公共字符串消息{get;set;}
}
}
}
上面的控制台应用程序可以工作,但我已经更改了您的JSON字符串,因为其他人正确地指出它不是有效的JSON。此外,如果您想检查JSON数据是否正确,您可以将数据发送到此处:
为什么不呢?这是一个官方的API,所以我想它应该可以工作,因为它适用于很多其他人。试试看
using System;
using System.Collections.Generic;
namespace ConsoleApplication2
{
using Newtonsoft.Json;
internal class Program
{
private static void Main(string[] args)
{
string jsonString =
"["
+ "{"
+ " \"error\": "
+ " {"
+ " \"typeofdevice\": 678,"
+ " \"valueconvert\": \"\","
+ " \"message\": \"oops something went wrong\""
+ " }"
+ "}"
+ "]";
List<Data> data = JsonConvert.DeserializeObject<List<Data>>(jsonString);
Console.WriteLine(data[0].Error.typeofdevice);
}
public class Data
{
public Error Error { get; set; }
}
public class Error
{
public string typeofdevice { get; set; }
public string valueconvert { get; set; }
public string message { get; set; }
}
}
}