• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

游戏开发

unity解析json的方案

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2019/0417/460.html

不时比较钟情于json,用来做数据交互,可谓圆满!下面简单说一下unity运用C#脚本如何解析json数据吧。
 
一、写解析类,借助于JsonUtility.FromJson
 
直接给个例子吧
 
1.json文件testJson.json内容,存储位置/Users/lpp/Downloads/testJson.json
 
{
    "name":"大苏",
    "age":27,
    "interests":["dance","fight"]
}
2.c#解析类ModelTest.cs
 
[System.Serializable]
public class ModelTest
{
    public string name;
    public int age;
    public string[] interests;
}
3.测试脚本
 
using UnityEngine;
using System.IO;
using System.Text;
 
public class JsonTest : MonoBehaviour {
 
    // Use this for initialization
    void Start () {
 
 
        string jsonTest = File.ReadAllText("/Users/lpp/Downloads/testJson.json", Encoding.UTF8);
        ModelTest obj = JsonUtility.FromJson<ModelTest>(jsonTest);
        Debug.Log(obj.name);
        Debug.Log(obj.age);
        foreach (var inter in obj.interests)
        {
            Debug.Log(inter);
        }
    }
     
    // Update is called once per frame
    void Update () {
         
    }
}
4.输出
 
二、运用Newtonsoft插件,无需解析类
 
网上下一个Newtonsoft.Json.dll,拖到Assets下某个位置,
 
上面同一个json,不再需求写解析类了,解析方式如下:
 
using UnityEngine;
using System.IO;
using System.Text;
using Newtonsoft.Json.Linq;
 
public class JsonTest : MonoBehaviour {
 
    // Use this for initialization
    void Start () {
 
        string json = File.ReadAllText("/Users/lpp/Downloads/testJson.json", Encoding.UTF8);
        JObject obj = JObject.Parse(json);
 
        Debug.Log(obj["name"].ToString());
        Debug.Log(obj["age"].ToString());
 
        JArray ints = (JArray)obj["interests"];
 
        foreach (var inter in ints)
        {
            Debug.Log(inter);
        }
    }
 
}
  输出同样的内容。

上篇:上一篇:sql用法select 1 与 select null
下篇:下一篇:unity还原three之旋转