c# - 将 JSON 解析为列表
问题描述
所以我试图将 JSON 数据解析为列表/数组,但有点卡在这样的格式上。我对 JSON 比较陌生,所以我不太擅长处理这些东西
这是我的代码:
void processJsonData(string _url)
{
jsonDataClass jsnData = JsonUtility.FromJson<jsonDataClass>(_url); //_url is based on the Json text below
Debug.Log(jsnData.data);
}
我使用这段代码来查看它是否设法从中获取数据,但 它显示了这样的错误
JSON 看起来像这样:
[{"country":"Malaysia","sales":9244},
{"country":"Singapore","sales":3103},
{"country":"Japan","sales":1755},
{"country":"China","sales":7835},
{"country":"United States","sales":2755},
{"country":"United Kingdom","sales":8611},
{"country":"Australia","sales":3877}]
我的jsonDataClass
样子是这样的:
using System.Collections;
using System.Collections.Generic;
using System;
[Serializable]
public class jsonDataClass
{
public List<basicData> data;
}
[Serializable]
public class basicData
{
public string country;
public float sales;
}
解决方案
更新的答案: 显然在 Unity 中,您不能使用内置的JsonUtility直接反序列化集合/列表/数组(感谢@derHugo 提供的信息),如果您正在寻找快速且可能很脏的解决方案,请使用以下代码:
List<basicData> jsnData = JsonUtility.FromJson<List<basicData>>("{\"data\":" + _url + "}");
如果您想了解更多信息,请参阅:Serialize and Deserialize Json and Json Array in Unity and JSON Serialization
推荐阅读
- r - 无法使用 plot() 在 R 中绘制折线图,其他图形类型也可以
- ruby-on-rails - 添加路由/事件/浏览时出现Rails错误
- nginx - 服务nginx无法运行
- r - 如何通过像键一样的字符串将一列一分为二?
- javascript - HTML 输入类型文本看起来像密码
- node.js - 如何刷新 node.js 应用程序
- sql-server - 在 SQL Server 表中查找最近的日期
- javascript - 如何在从 Thymeleaf 读取变量时消除 JavaScript 中的双引号
- mongodb - Mongoose update很多用法
- ruby-on-rails - 连接到 jBuilder 的 Rails