unity从服务器获取json数据并解析 笔记

本文讲述了在Unity3D项目中,如何正确接收服务器返回的JSON数据,包括解析错误格式并修复,以及使用UnityWebRequest进行跨域请求,并使用可序列化的C#类结构处理接收到的数据。
摘要由CSDN通过智能技术生成

一、服务器中json信息格式

错误格式:

[{“url”:“adr1”},{“url”:“adr2”},{“url”:“adr3”}]

正确格式:

{ “picInfoArray”:[{“url”:“adr1”},{“url”:“adr2”},{“url”:“adr3”}] }

我本来只想要[{“url”:“adr1”},{“url”:“adr2”},{“url”:“adr3”}],但是格式不对。必须还得在外面套个壳。

二、接收内容页代码

//引用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

//存储从服务器接收到的文件

  public string receive;

//接收数据方法

IEnumerator PostMsg(string methodName, string jsonParas)
    {
        string PostUrl = "这里填写服务器的URL";//服务器url

        // 创建UnityWebRequest对象,指定URL和请求方法为GET
        UnityWebRequest request = new UnityWebRequest(PostUrl,"GET");
        request.downloadHandler = new DownloadHandlerBuffer();

        //设置请求的头部信息  ,这里意思是json信息
        request.SetRequestHeader("Content-Type","application/json");

        // 设置跨域请求所需的头部信息
        request.SetRequestHeader("Access-Control-Allow-Origin", "*");
        request.SetRequestHeader("Access-Control-Allow-Method", "*");
        request.SetRequestHeader("Access-Control-Allow-Headers", "*");

        //发送请求
        yield return request.SendWebRequest();

        //检查是否有错误发生
        if (request.isDone && !request.isNetworkError)
        {
            //请求成功,处理相应数据
            receive = request.downloadHandler.text;

                //cailiao是我定义的跟json整体内容格式相同的List    

                caiLiaoAtt = JsonUtility.FromJson<cailiao>(str);

                //我的json数据是以data包的壳,所以得先.data

               //比如:caiLiaoAtt.data[0].image

   

        }
        else
        {
            Debug.Log(request.error);
        }
        yield return "success";

    }

三、结构

//总结构
[System.Serializable]
public class cailiao
{
    public List<CaiLiaoAtt> data = new List<CaiLiaoAtt>();
}
//需要使用到的内容
[System.Serializable]
public class CaiLiaoAtt
{
    public string id;
    public string category;//类别
    public string name;
    public string image;
    public string description;//语音
    public string detail;//介绍
    public string price;
}

注意,接收的结构上面要加上可序列化

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值