Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NewtonSoft.JSON反序列化不起作用_C#_Json_Json.net - Fatal编程技术网

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; }
        }
    }
}