C# 反序列化不带名称的JSON值
如何反序列化C#中只有值而没有名称的字符串。看起来是这样的:问题是这个字符串流没有名称,而是使用数组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
{
“结果”:{
"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()
必须是一个副本,对吗?虽然这在正常情况下很有用,但在这里,当结果以数字作为属性名时,它没有帮助