gpt4 book ai didi

c# - 使用不同类型的对象解析 json 字符串的方法

转载 作者:行者123 更新时间:2023-11-30 18:32:53 25 4
gpt4 key购买 nike

我有以下 json 字符串

{
"serverTime": "2013-08-12 02:45:55,558",
"data": [{
"key1": 1,
"result": {
"sample1": [""],
"sample2": "test2"
}
},{
"key1": 1,
"result": {
"sample3": [""],
"sample4": "test2"
}
}]
}

使用 JSONTOC#

生成了以下类。

public class Result 
{
public List<string> sample1 { get; set; }
public string sample2 { get; set; }
public List<string> sample3 { get; set; }
public string sample4 { get; set; }
}

public class Datum
{
public int key1 { get; set; }
public Result result { get; set; }
}

public class RootObject
{
public string serverTime { get; set; }
public List<Datum> data { get; set; }
}

正如您所见,该工具已生成具有所有可能属性的 Result 类。

我正在尝试按照以下方法解析 json

public class Response<T>
{
public Date serverTime;
public ResponseData<T>[] data;
}

public class ResponseDataBase
{
public int key1;
}

public class ResponseData<T> : ResponseDataBase
{
public T result;
}

这里可以T跟随两个类

Class Result1
{
public List<string> sample1 { get; set; }
public string sample2 { get; set; }
}

Class Result2
{
public List<string> sample3 { get; set; }
public string sample4 { get; set; }
}

我有这些类声明作为引用,类定义可以完全不同。

** 我如何通过指定结果类型来解析此 json。** 我正在使用 JSONFx.net 反序列化回对象。

谢谢

最佳答案

从您的 JSON 数据生成的类:

public class Result
{
public List<string> sample1 { get; set; }
public string sample2 { get; set; }
}

public class Datum
{
public int key { get; set; }
public Result result { get; set; }
}

public class RootObject
{
public string serverTime { get; set; }
public List<Datum> data { get; set; }
}

使用 Newtonsoft.Json dll 反序列化 JSON 数据,如:

var obj = JsonConvert.DeserializeObject<RootObject>("yourjsonstring");

然后你可以像这样使用 obj 的属性:

var date = DateTime.Parse(obj.serverTime);

等等。

关于c# - 使用不同类型的对象解析 json 字符串的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18187615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com