JSON下面是WWW
GET结果
{
"status":200,
"watchlist":[
{
"Category":"Movie",
"ShowList":[
{
"id":"59534a851339762f38e16ad7",
"Name":"Play zombie tonight",
"Description":"descblablabla",
"IMDB":1,
"Tag":[
"horror",
"comedy"
],
"Picture":{
"id":"59534a8b1339762f38e16b6d",
"Url":"imgurlbla",
"DisplayOrder":0
}
}
]
},
{
"Category":"Variety",
"ShowList":[
{
"id":"59532bf51339742f380d4cb1",
"Name":"Yearning for life",
"Description":"descblablabla",
"IMDB":1,
"Tag":[
"reality show"
],
"Picture":{
"id":"59532bfb1339742f380d4d3a",
"Url":"imgurlbla",
"DisplayOrder":0
}
}
]
}
]
}
我想将结果分配给List<>
,因此我可以轻松访问WatchList
中的值。以下是我试过的代码。
List<WatchList> viewitemlist = JsonUtility.ToJson (www.text);
我也尝试过一个名为LitJSON的库:
string json = www.text;
JsonData jsonObject = JsonMapper.ToObject(json);
List<On360WatchList> viewitemlist =
JsonMapper.ToObject<List<On360WatchList>> (jsonObject ["watchlist"].ToJson());
答案 0 :(得分:0)
这意味着您要将GET的Result对象反序列化为其自己的类型因此,您需要使用Newtonsoft Library来帮助您反序列化该对象。 在Package Manger Console中获取库编写以下命令
Install-Package Newtonsoft.Json
或者直接从NuGet Package Manger下载。 然后使用以下代码反序列化您已经
的对象string TargetObject = YourObject;
List<WatchList> Wl = JsonConvert.DeserializeObject<List<WatchList>>(TargetObject);
尝试将其添加到Unity:
创建一个文件夹:Assets / Plugins,其中放置* .dll文件并将其添加为参考。
要添加引用,请在Visual Studio的“解决方案资源管理器”中以及“项目”&gt;下突出显示分析器。添加引用,您可以通过浏览找到位于Assets / Plugin中的* .dll文件。
或者 试试这个命令
安装包Unity.Newtonsoft.Json -Version 7.0.0
答案 1 :(得分:-1)
我在Unity中解析JSON数组时有类似的问题,你不能用JsonUtility解析JSON数组,你必须使用外部库,SimpleJSON为我工作,只需将.cs文件粘贴到你的脚本文件夹中。您可以从此处SimpleJSON下载JSON库。向下滚动到SimpleJSON.cs部分,将所有内容复制到脚本文件夹中的新.cs文件,并使用using SimpleJSON;
var jsonObject = JSON.Parse(response)
解析响应,您就可以开始了!您可以将其作为数组访问或将其分配给监视列表。