Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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# 反序列化不带名称的JSON值_C#_Json_Deserialization - Fatal编程技术网

C# 反序列化不带名称的JSON值

C# 反序列化不带名称的JSON值,c#,json,deserialization,C#,Json,Deserialization,如何反序列化C#中只有值而没有名称的字符串。看起来是这样的:问题是这个字符串流没有名称,而是使用数组 { “结果”:{ "14400": [ [ 1502985600, 262.18, 262.18, 257, 257, 1096.0131 ], [ 1503000000, 257, 261.33, 254.8, 257, 1130.5897 ] ], "14405": [ [ 1503014400, 258.03, 261.5, 257.01, 257.01, 520.7805 ], [ 1

如何反序列化C#中只有值而没有名称的字符串。看起来是这样的:问题是这个字符串流没有名称,而是使用数组

{
“结果”:{
"14400": [
[
1502985600,
262.18,
262.18,
257,
257,
1096.0131
],
[
1503000000,
257,
261.33,
254.8,
257,
1130.5897
]
],
"14405": [
[
1503014400,
258.03,
261.5,
257.01,
257.01,
520.7805
],
[
1503028800,
258,
260.98,
252.4,
259.56,
298.5658
],
]
]
}

}
我知道这是一个数组,您可以创建一个方法来解析给定JArray中的类

杰森数据

  public void methpod()
    {

string json ="Your jason value " 

        var factory = new Factory();
        var suggest = factory.Create(json);

        Console.WriteLine(suggest);
    }
按照建议进行分类:

public class Factory
{
    public Evan Create(string json)
    {
        var array = JArray.Parse(json);
        string search = array[0].ToString();
        string[] terms = array[1].ToArray().Select(item => item.ToString()).ToArray();

        return new Evan{Search = search, Terms = terms};
    }
}
还有一个

public class Evan
{
    public string Search { get; set; }
    public IEnumerable<string> Terms { get; set; }
    public override string ToString()
    {
        return string.Format("Search={0},Terms=[{1}]", 
            Search, string.Join(",", Terms));
    }
}
公共类Evan
{
公共字符串搜索{get;set;}
公共IEnumerable项{get;set;}
公共重写字符串ToString()
{
返回string.Format(“Search={0},Terms=[{1}]”,
搜索,string.Join(“,”术语));
}
}

只需创建一个类似

public class Root
{
    public Dictionary<int,List<List<double>>> Result { get; set; }
}
公共类根目录
{
公共字典结果{get;set;}
}
并反序列化为

var res = JsonConvert.DeserializeObject<Root>(json);
var res=JsonConvert.DeserializeObject(json); 提示

如果您有要反序列化的JSON,但没有要反序列化的类,Visual Studio 2019可以自动生成所需的类:

复制需要反序列化的JSON。 创建类文件并删除模板代码。 选择编辑>粘贴特殊>将JSON粘贴为类。
结果是一个可以用于反序列化目标的类

@napi15为什么不试试呢?我只是一个中间人,当我花了10分钟试图构建我的类时,对你的两行解决方案感到惊讶和印象深刻:)@napi15它可能也是一行,但可读性不强
var dict=JObject.Parse(json)[“结果”].ToObject()
必须是一个副本,对吗?虽然这在正常情况下很有用,但在这里,当结果以数字作为属性名时,它没有帮助