Unity 之json解析

首先创建解析模型脚本

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

[Serializable]
public class JsonObjectModel {
    //对应Json中属性 名字要一样
    [SerializeField]
    public string name;
    [SerializeField]
    public int age;
    public JsonObjectModel()
    {

    }
    public JsonObjectModel(string _name, int _age)
    {
        this.name = _name;
        this.age = _age;
    }

}
[Serializable]
public class JsonList
{
    [SerializeField]
    public List<JsonObjectModel> nameList;
    public JsonList()
    {

    }
    public JsonList(List<JsonObjectModel> _nameList)
    {
        this.nameList = _nameList;
    }
}
2.创建解析脚本

using LitJson;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class JsonDeserialize : MonoBehaviour {

    // Use this for initialization
    void Start () {
        foreach (var info in ReadJson().nameList)
        {
            Debug.Log(info.name+ " " + info.age);
        }
        
    }
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            List<JsonObjectModel> temp = new List<JsonObjectModel>();
          
            temp.Add(new JsonObjectModel("人物1", 22));
            temp.Add(new JsonObjectModel("人物2",33));
            WritePath(temp,GetJsonPath());
        }
    }
    private JsonList  ReadJson()
    {
        string content = File.ReadAllText(GetJsonPath());
        JsonList jsonList = JsonMapper.ToObject<JsonList>(content);
        return jsonList;
    }
    private  void WritePath(List<JsonObjectModel> configList, string path)
    {
        File.WriteAllText(path, JsonUtility.ToJson(new JsonList(configList)));
        Debug.Log("保存成功!");
    }
    private  string GetJsonPath()
    {
        return string.Format(Application.dataPath + "/Config/JsonData.json");
    }
}
3.jsonData.json文本创建,格式如下

{
  "nameList": [
    {
      "name": "人物1",
      "age": 22
    },
    {
      "name": "人物2",
      "age": 33
    }
  ]
}

注意:配置文件的路径Config目录下

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W低小调W

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值