Unity解析json文件(分为json与jsonArray)

这篇具有很好参考价值的文章主要介绍了Unity解析json文件(分为json与jsonArray)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是json?

JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度,

那么,JSON到底是什么?
JSON就是一串字符串 只不过元素会使用特定的符号标注。
{} 双括号表示对象
[] 中括号表示数组
“” 双引号内是属性或值
: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
所以 {“name”: “Michael”} 可以理解为是一个包含name为Michael的对象
而[{“name”: “Michael”},{“name”: “Jerry”}]就表示包含两个对象的数组
当然了,你也可以使用{“name”:[“Michael”,“Jerry”]}来简化上面一部,这是一个拥有一个name数组的对象
ps:现在还有很多人存在一些误区,为什么{name:‘json’}在检验时通过不了,
那是因为JSON官网最新规范规定
如果是字符串,那不管是键或值最好都用双引号引起来,所以上面的代码就是{“name”:“json”}
不要反驳,官网就是这么定义的。
解析如下的json文件:

{
    "code": 0,
    "data": {
        "delFlag": 0,
        "id": 3,
        "major": 1000,
        "password": "$2a$10$u---------------4mfiA0XAIG",
        "realName": "张永",
        "roleId": 2,
        "roleName": "学生",
        "schoolId": 1000,
        "schoolName": "尚哲智能",
        "studentId": 1000,
        "token": "eo",
        "username": "1"
    },
    "msg": "成功"
}

现在是解析“data”中的数据,首先在脚本中定义一个类,这个类包括所有的json的node,格式如下显示:
//注意:定义的字符串名字要和json文件中的node名字一样

 [Serializable]
    public class TokenEle
    {
        public string delFlag;
        public string id;
        public string major;
        public string password;
        public string realName;
        public string roleId;
        public string roleName;
        public string schoolId;
        public string schoolName;
        public string studentId;
        public string token;
        public string username;
    }

然后 定义一个用于解析的类“

 [Serializable]
    public class TokenAll
    {
        public TokenEle data;
    }

下面是解析的过程:

TokenAll tokenAll = JsonUtility.FromJson<TokenAll>(logJson);
  //得到你需要的值
tokenAll.data.token;
//你也可以用foreach来遍历
这样,你就会得到你需要的json文件中的值

解析jsonarray文件:
需要解析的json文件如下:我们解析data的文件

{
    "code": 0,
    "data": [
        {
            "accountTotalNumber": 10000,
            "accountUseNumber": 6,
            "address": "江苏省南京市建邺区信安大厦",
            "contact": "xxxxxxxxxxx",
            "expireDate": "2043-08-19 00:00:00",
            "id": 1000,
            "leader": "吴小冬",
            "name": "尚哲智能",
            "orgId": 1000
        }
    ],
    "msg": "成功"
}

这样带有[ ] 的json文件是组的形势存在的,也就是说,相类似的数据会有若干组,
和上面一样定义一个包含它们所有node的类:

[Serializable]
   public class logJsonEle
   {
       public string accountTotalNumber;
       public string accountUseNumber;
       public string address;
       public string contact;
       public string expireDate;
       public string id;
       public string leader;
       public string name;
       public string orgId;
   }

然后定义一个解析的类:

[Serializable]
    public class logJsonAll
    {
        public logJsonEle[] data;
    }

然后解析的过程是一样的

foreach (var item in jsonAll.data)
       {
           DropdowmoptionsList.Add(item.name);
           StationDic.Add(item.name, item.id);
       }

那么要如何生成json文件呢
其实很简单

JsonData jsonData = new JsonData();

           jsonData["username"] = UserName.text;
           jsonData["password"] = Password.text;
           jsonData["schoolId"] = StationDic[dropdown_Station.options[dropdown_Station.value].text];

string jsl = jsonData.ToJson();

这个jsl就是生成的json格式的字符串
还有一种,是有层级的关系,如下:

         data["name"] = "Czhenya";
         //生成嵌套结构的json
        data["info"] = new JsonData();
        data["info"]["age"] = 28;
        data["info"]["sex"] = "男";

还有一种生成json文件的方法.这个比价灵活文章来源地址https://www.toymoban.com/news/detail-474015.html

using Newtonsoft.Json;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 生成json文件
/// </summary>
public class CreatJson : MonoBehaviour
{ 
    private Md5Info md = new Md5Info();
    private void Start()
    {
          Md5InfoList md5list = new Md5InfoList
            {
                listname = name,
                listmd5 = md5Infos,
                listpath = path
            };
            md.Md5data.Add(md5list);
            ToJson();
    }   
    //数据转换为json
    void ToJson()
    {
        md.jsonName = "JsonName";
        string jsonstring = JsonConvert.SerializeObject(md); 
    }
}
public class Md5Info
{
    public string jsonName;
    public List<Md5InfoList> Md5data = new List<Md5InfoList>();
}
public class Md5InfoList
{
    public string listname { set; get; }
    public string listmd5 { set; get; }
    public string listpath { set; get; }
}

到了这里,关于Unity解析json文件(分为json与jsonArray)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • vscode打开c_cpp_properties.json文件的一种方式

    vscode打开c_cpp_properties.json文件的一种方式

    点击win32 点击json 自动生成了

    2024年01月19日
    浏览(14)
  • JSON转换:实体类和JSONObject互转,List和JSONArray互转(fastjson版)

         //1.java对象转化成String      String s=JSONObject.toJSONString(javaObject.class);       //2. java对象转化成Object         Object str=JSONObject.toJSON(javaObject.class);       //3.String类型转json对象        JSONObject jsonObject= JSONObject.parseObject(str);       //4. String转Object         Obj

    2024年02月14日
    浏览(13)
  • Unity解析JSON的几种方式

    1.使用JsonUtility(Unity自带)解析数据 踩坑 2.使用Newtonsoft.Json dll解析json 链接: link 3.使用LitJson解析数据 4.传递给前端或后端 json

    2024年02月16日
    浏览(12)
  • 【Unity】C# 创建/读取/解析JSON数据

    判断是否存在JSON数据文件没有则创建并保存

    2024年02月16日
    浏览(8)
  • 什么是Java中的JSON解析和生成?

    首先,我们来解释一下JSON是什么。简单来说,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于解析和生成。在Java中,我们有很多种方式来实现JSON解析和生成。接下来,我们来看一下代码示例吧! 首先,我们来看一下JSON解析。假设我

    2024年02月15日
    浏览(7)
  • 【Unity】【Json解析】JsonConvert和JsonUtility的异同

    JsonUtility的FromJson和JsonConvert的DeserializeObject方法都能够用来将字符串解析成对象,用法分别是: LevelProperty rawArray = JsonConvert.DeserializeObjectLevelProperty(originString); LevelProperty rawArray = JsonUtility.FromJsonLevelProperty(originString); 但JsonUtility不支持将字符串解析为数组,也就是说以下写法是

    2024年02月13日
    浏览(6)
  • Unity数据解析(Json、XML、CSV、二进制)

    常见的数据解析(Json、XML、CSV、二进制)

    2024年02月21日
    浏览(12)
  • Unity文本框解析读取mqtt服务器JSON数据

    Unity文本框解析读取mqtt服务器JSON数据

    本次内容是讲述如何将mqtt服务器中接收到的数据在Unity3D的文本框控件中显示JSON键值对中的“值”。 需求: 1.GameObject——UI——Text (将Unity 3D的文本框控件置于场景) 命名空间引用: using UnityEngine.UI; 2. Newtonsoft插件 命名空间引用: Newtonsoft.Json.Linq; 3.MQTT通讯需求: (1)h

    2023年04月08日
    浏览(8)
  • 读取JSON文件 如何在Unity中读取Json文件中的数据

    读取JSON文件 如何在Unity中读取Json文件中的数据

    Josn是一种轻量级的数据交换格式,JSON能够描述四种简单的类型(字符串、数字、布尔值及null)和两种结构化类型(对象及数组),在Unity里经常用Json来处理大量的字符串,容易解析,效率非常快。 基本结构 1、语法 数据存在键值对中 数据由逗号分隔 花括号保存对象 方括号保存

    2024年02月15日
    浏览(8)
  • 【C++】使用 nlohmann 解析 json 文件

    nlohman json GitHub - nlohmann/json: JSON for Modern C++ 是一个为现代C++(C++11)设计的JSON解析库,主要特点是 易于集成,仅需一个头文件,无需安装依赖 易于使用,可以和STL无缝对接,使用体验近似python中的json 1. json初始化 1.1 从文件初始化 1.2 从字符串初始化 方式1 R表示json字符串中

    2024年02月10日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包