Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(196评价)
价格: 4019.00元
老师 我想问解析Json的问题 help 不知道为啥报错 显示jsonData不是字典 我看打印出来的类型已经是json了 但是按网上博客改的 不知道为啥报错 我就是想获取接口返回的json 然后变成正常格式 之后再用base64解码 求救啊
Too_real发起了问答2019-07-30
3
回复
574
浏览

老师 我想问解析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;
    }
}

 

所有回复
发表回复
你还没有登录,请先 登录或 注册!