C# 使用UnityEngine.JsonUtility从Unity3d中的XDB REST反序列化JSON

C# 使用UnityEngine.JsonUtility从Unity3d中的XDB REST反序列化JSON,c#,json,rest,unity3d,influxdb,C#,Json,Rest,Unity3d,Influxdb,我在使用Unity3d的JsonUtility类反序列化C#中influxDB的JSON响应时遇到问题 我使用json2csharp.com生成我的类。问题似乎是结果JSON字符串中有一个包含对象列表的列表 这是XDB的JSON结果示例: { "results": [ { "statement_id": 0, "series": [ { "name":

我在使用Unity3d的JsonUtility类反序列化C#中influxDB的JSON响应时遇到问题

我使用json2csharp.com生成我的类。问题似乎是结果JSON字符串中有一个包含对象列表的列表

这是XDB的JSON结果示例:

{
    "results": [
        {
            "statement_id": 0,
            "series": [
                {
                    "name": "cpu_load_short",
                    "columns": [
                        "time",
                        "value"
                    ],
                    "values": [
                        [
                            "2015-01-29T21:55:43.702900257Z",
                            2
                        ],
                        [
                            "2015-01-29T21:55:43.702900257Z",
                            0.55
                        ],
                        [
                            "2015-06-11T20:46:02Z",
                            0.64
                        ]
                    ]
                }
            ]
        }
    ]
}
这是json2csharp生成的类:

public class Series
{
    public string name { get; set; }
    public List<string> columns { get; set; }
    public List<List<object>> values { get; set; }
}

public class Result
{
    public int statement_id { get; set; }
    public List<Series> series { get; set; }
}

public class RootObject
{
    public List<Result> results { get; set; }
}
公共类系列
{
公共字符串名称{get;set;}
公共列表列{get;set;}
公共列表值{get;set;}
}
公开课成绩
{
公共int语句_id{get;set;}
公共列表系列{get;set;}
}
公共类根对象
{
公共列表结果{get;set;}
}
我就是不知道如何处理值字段中的
列表

运行程序时,我会得到以下日志输出(这不是示例JSON,而是来自我的数据库的实际结果,但格式相同):

InfluxResult(
(列表'1)结果=列表'1[
结果(
(Int32)语句_id=0;
(列表'1)系列=列表'1[
系列(
(字符串)name=“gf\U走廊\U温度”;
(列表'1)列=列表'1[
“时间”,
“价值”,
];
(列表'1)值=Null;
),
];
),
];
)
如果我这样做,它将解析更深一层:

[Serializable]
public class Series
{
    public string name;// { get; set; }
    public List<string> columns; // { get; set; }
    public List<ValueSet> values; // { get; set; }
}

[Serializable]
public class ValueSet
{
    public List<object> values;
}
[可序列化]
公开课系列
{
公共字符串名称;//{get;set;}
公共列表列;//{get;set;}
公共列表值;//{get;set;}
}
[可序列化]
公共类值集
{
公共列表值;
}
但这显然只是将值解析为空对象列表。但它们与“值集”列表的正确计数相对应

我是一个爱好级别的开发者,所以我可能会错过一些基本的东西。我猜json2csharp生成器会因为嵌套列表而失败?但是,应该如何处理这一问题,是否可以使用UnityEngine.JsonUtility?此外,“valueset”根据数据库的设置方式而不同,因此列列表表示值列表以及系列行中每个字段的类型(如果我有任何意义的话),因此我猜必须有某种通用对象,我将在稍后处理生成的问题

[
                        [
                            "2015-01-29T21:55:43.702900257Z",
                            2
                        ],
                        [
                            "2015-01-29T21:55:43.702900257Z",
                            0.55
                        ],
                        [
                            "2015-06-11T20:46:02Z",
                            0.64
                        ]
                    ]

无法由
JSONUtility
反序列化。使用专用库(如Newtonsoft JSON)来迭代“JSON对象”。

谢谢。我就是这么想的。找到了一个在unity中工作的涌入c#客户端,并最终使用了newtonsoft json,因为这是对客户端的依赖。
[
                        [
                            "2015-01-29T21:55:43.702900257Z",
                            2
                        ],
                        [
                            "2015-01-29T21:55:43.702900257Z",
                            0.55
                        ],
                        [
                            "2015-06-11T20:46:02Z",
                            0.64
                        ]
                    ]