zoukankan      html  css  js  c++  java
  • Unity—Json2

    走过的坑,插个旗:

    1.百度EXCEL转Json,有的网站如https://www.bejson.com/json/col2json/这个:

       转成的Json,最后会多出个,空格并不影响;

    2.如前文中提及的json不要出现中文,若有先转成UTF-8;

    3.我的实用案列

    基类配置属性

    public class Iconfigures
    {
        public string ID;   
        public string Colour_Body;
        public string Light_Head;
        public string Light_Tail;
        public string Colour_Interior;
    }
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using LitJson;
    
    public class SaveIC : MonoBehaviour
    {
    
        public Dictionary<string, Iconfigures> dataDic = new Dictionary<string, Iconfigures>();
    
        private List<Iconfigures> icList = new List<Iconfigures>();
        // Use this for initialization
        void Start()
        {
            LoadConfig();
        }
    
    
    
        void LoadConfig()                              //将EXCEL转换的JSON字符串文件赋值给我的配置表基类(Iconfigures),并最终实例到字典Dic中
        {
            TextAsset ta = Resources.Load<TextAsset>("Configure");
            Debug.Log($"{ta.text}");
            JsonData jd = JsonMapper.ToObject(ta.text);
            if (ta)                                                      
            {
    
                Iconfigures ic = new Iconfigures();
                Debug.Log($"AAA:{jd.Count}");//2
    
                icList = JsonMapper.ToObject<List<Iconfigures>>(jd.ToJson());              //采用List的方法一,但是发现,因为Json全是string格式,
                                                                       //如果配置基类中有Int等不同类型,不能用ToObject直接赋值,可以考虑中间变通
                foreach (Iconfigures info in icList)
                {
                    ic = info;
                    dataDic.Add(ic.ID, ic);
                }
    
    
                //for (int i = 0; i < jd.Count; i++)                                      //采用一一赋值的方法二
                //{
                //    ic.ID = int.Parse((string)jd[i]["ID"]);
                //    Debug.Log($"A:{ic.ID}");
                //    ic.Colour_Body = (string)jd[i]["Colour_Body"];
                //    Debug.Log($"A:{ic.Colour_Body}");
                //    ic.Colour_Interior = (string)jd[i]["Colour_Interior"];
                //    ic.Light_Head = (string)jd[i]["Light_Head"];
                //    ic.Light_Tail = (string)jd[i]["Light_Tail"];
                //    dataDic.Add(ic.ID, ic);
                //}
    
            }
    
    
            Iconfigures item;
            dataDic.TryGetValue("10001", out item);
            Debug.Log($"BBB:");
            if (item != null)
            {
                Debug.Log($"CCC:");
                Debug.LogError($"item:{item.ID}");
            }
        }
    }
    View Code
    余生很长,愿我们都活成自己喜欢的样子
  • 相关阅读:
    ASP.NET缓存页面
    SQL2005没有服务端开启程序
    Cookie创建以及清除Cookie数组
    http 错误编号大全(转)
    .net 控件库名称
    window.location.hash属性介绍
    CSS半透明滤镜在FIREFOX和IE下面的能够通用的写法
    兼容性问题
    Js获取窗体大小
    springcloud 微服务分布式 flowable 工作流 前后分离vue.js 集成代码生成器 shiro权限
  • 原文地址:https://www.cnblogs.com/bananana/p/8946539.html
Copyright © 2011-2022 走看看