[英]How can I deserialize JSON string in C#?
我有以下字符串:
{
"time": 20200526,
"data1m": "[[1590451620,204.73,204.81,204.73,204.81,1.00720100],[1590451680,204.66,204.66,204.58,204.58,1.00000000],[1590452280,204.65,204.83,204.65,204.83,13.74186800],[1590452820,203.75,203.75,203.75,203.75,0.50000000],[1590452880,203.47,203.47,203,203,1.60000000],[1590453000,203.06,203.06,203.06,203.06,4.00000000]]"
}
如何在 C# 中对其进行反序列化?
我使用这段代码:
result = reader.ReadToEnd();
var desc = Utilities.Jsprocessor.Deserialize<fooString>(result);
Internal class fooString
{
public string time { get; set; }
public string data1m { get; set; }
}
但是,我仍然需要处理字符串。 有没有办法对其进行反序列化,以便将其保存在数组中?
这将是一种数据感知方式。 我从名为 json1.json 的文件中读取了 json
自定义转换器
public class StringToListConverter<T> : JsonConverter
{
public override bool CanConvert(Type objectType)
{
throw new NotImplementedException();
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.Value is null)
{
return null;
}
List<double[]> retVal = JsonConvert.DeserializeObject<List<double[]>>(reader.Value.ToString());
return retVal;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
throw new NotImplementedException();
}
}
Model
public class model
{
public int time { get; set; }
[JsonConverter(typeof(StringToListConverter<List<int>>))]
public List<double[]> data1m { get; set; }
}
样品执行
public string jsonData = "";
static void Main(string[] args)
{
using (StreamReader r = new StreamReader("json1.json"))
{
string json = r.ReadToEnd();
Console.Write(json);
var item = JsonConvert.DeserializeObject<model>(json);
}
Console.ReadKey();
}
string text = {
"time": 20200526,
"data1m": "[[1590451620,204.73,204.81,204.73,204.81,1.00720100],[1590451680,204.66,204.66,204.58,204.58,1.00000000],[1590452280,204.65,204.83,204.65,204.83,13.74186800],[1590452820,203.75,203.75,203.75,203.75,0.50000000],[1590452880,203.47,203.47,203,203,1.60000000],[1590453000,203.06,203.06,203.06,203.06,4.00000000]]"
}
string deserializedText = JsonConvert.DeserializeObject<string>(text);
注意:对于 JsonConvert,使用 NuGet Package:- "Newtonsoft.Json"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.