老师 我想问解析Json的问题 help 不知道为啥报错 显示jsonData不是字典 我看打印出来的类型已经是json了 但是按网上博客改的 不知道为啥报错 我就是想获取接口返回的json 然后变成正常格式 之后再用base64解码 求救啊
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using LitJson;
using System.IO;
using System.Net;
public class test : MonoBehaviour
{
//private ArrayList List = new ArrayList(5);
//private Rect rect = new Rect(10, 50, 150, 150);
//请求地址,写自己的请求地址就行
//private string url = "http://xxxxxxxxx/ApiServlet?method=list";
//声明 JsonData LitJson 提供的方法
JsonData itemdata;
//Dictionary<string, string> JsO = new Dictionary<string, string>();
//新建 List 存放数据
private List<Item> dataBase = new List<Item>();
void Start()
{
StartCoroutine(GetRequest("http://xin.aixinyouxi.com/rgt/sq/"));
}
IEnumerator GetRequest(string uri)
{
using (UnityWebRequest webRequest = UnityWebRequest.Get(uri))
{
// Request and wait for the desired page.
yield return webRequest.SendWebRequest();
/*WWW getData = new WWW(url);
yield return getData;*/
if (webRequest.error != null)
{
Debug.Log(webRequest.error);
}
else
{
Debug.Log(webRequest.downloadHandler.text);
}
//把请求到的数据转换成 JsonData array 类型,并存储到itemdata里
itemdata = JsonMapper.ToObject(webRequest.downloadHandler.text);
Debug.Log(itemdata);
//调用 ConstructItemDatabase() 函数
ConstructItemDatabase();
//测试数据
Debug.Log(dataBase[0].Code);
}
void ConstructItemDatabase()
{
//循环取数据
for (int i = 0; i < itemdata.Count; i++)
{
//把每个数据都添加到 dataBase 里 要和请求到的json数据对应
//dataBase.Add(new Item((int)itemdata[i]["longId"], (int)itemdata[i]["intId"], itemdata[i]["item"].ToString()));
dataBase.Add(new Item((int)itemdata[i]["code"], itemdata[i]["agreement"].ToString(), (int)itemdata[i]["tp"], itemdata[i]["xt"].ToString()));
}
}
}
}
public class Item
{
//base64 解密
//定义Item内的数据
//固定写法 XX{ get; set; }
public int Code { get; set; }
public string Agreement { get; set; }
public int Tp { get; set; }
public string Xt { get; set; }
//接收上面的变量
public Item(int _code, string _agreement, int _tp, string _xt)
{
this.Code = _code;
this.Agreement = _agreement;
this.Tp =_tp;
this.Xt = _xt;
}
}
这个是接口