我项目的服务端使用PHP,并在数据库中存储了如下数据信息。
[
{
"playerId": "1",
"playerLoc": "Powai"
},
{
"playerId": "2",
"playerLoc": "Andheri"
},
{
"playerId": "3",
"playerLoc": "Churchgate"
}
]
Unity的前端项目使用www获取请求。
请求到的内容如下:
[
{
"playerId": "1",
"playerLoc": "Powai"
},
{
"playerId": "2",
"playerLoc": "Andheri"
},
{
"playerId": "3",
"playerLoc": "Churchgate"
}
]
我删除了字符串中多余的 []。当我尝试使用 Boomlagoon.JSON 库解析时,只获取到了第一个对象。我发现需要对列表进行反序列化(deserialize()),而且我也已经导入了 MiniJSON。
但我该如何反序列化这个列表?我想遍历每个 JSON 对象并获取数据。如何在 Unity 中使用 C# 实现这一点?
这是我定义的Player类:
public class Player
{
public string playerId { get; set; }
public string playerLoc { get; set; }
public string playerNick { get; set; }
}
在删除了 [] 之后,我能够使用 MiniJSON 解析 JSON。但它只返回第一个 KeyValuePair。
IDictionary<string, object> players = Json.Deserialize(serviceData) as IDictionary<string, object>;
foreach (KeyValuePair<string, object> kvp in players)
{
Debug.Log(string.Format("Key = {0}, Value = {1}", kvp.Key, kvp.Value));
}