无名称反序列化JSON值

时间:2017-09-07 19:34:08

标签: c# json deserialization

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



{
  "result": {
    "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
      ],
   ]
  ]
 }
}




3 个答案:

答案 0 :(得分:6)

只需创建一个类

public class Root
{
    public Dictionary<int,List<List<double>>> Result { get; set; }
}

并反序列化为

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

答案 1 :(得分:1)

我看到它是一个数组,你可以创建一个方法来解析给定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));
    }
}

答案 2 :(得分:-1)

提示

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

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