当前位置:   article > 正文

unity解析json的两种方式_unity jobject

unity jobject

下面简单说一下unity使用C#脚本如何解析json数据吧。

一、写解析类,借助于JsonUtility.FromJson

直接给个例子吧

1.json文件testJson.json内容,存储位置/Users/lpp/Downloads/testJson.json

  1. {
  2. "name":"小明",
  3. "age":20,
  4. "interests":["sing","run"]
  5. }

2.c#解析类ModelTest.cs

  1. [System.Serializable]
  2. public class ModelTest
  3. {
  4. public string name;
  5. public int age;
  6. public string[] interests;
  7. }

3.测试脚本

  1. using UnityEngine;
  2. using System.IO;
  3. using System.Text;
  4. public class JsonTest : MonoBehaviour {
  5. // Use this for initialization
  6. void Start () {
  7. string jsonTest = File.ReadAllText("/Users/lpp/Downloads/testJson.json", Encoding.UTF8);
  8. ModelTest obj = JsonUtility.FromJson<ModelTest>(jsonTest);
  9. Debug.Log(obj.name);
  10. Debug.Log(obj.age);
  11. foreach (var inter in obj.interests)
  12. {
  13. Debug.Log(inter);
  14. }
  15. }
  16. // Update is called once per frame
  17. void Update () {
  18. }
  19. }

二、使用Newtonsoft插件,无需解析类

网上下一个Newtonsoft.Json.dll,拖到Assets下某个位置,

上面同一个json,不再需要写解析类了,解析方式如下:
  1. using UnityEngine;
  2. using System.IO;
  3. using System.Text;
  4. using Newtonsoft.Json.Linq;
  5. public class JsonTest : MonoBehaviour {
  6. // Use this for initialization
  7. void Start () {
  8. string json = File.ReadAllText("/Users/lpp/Downloads/testJson.json", Encoding.UTF8);
  9. JObject obj = JObject.Parse(json);
  10. Debug.Log(obj["name"].ToString());
  11. Debug.Log(obj["age"].ToString());
  12. JArray ints = (JArray)obj["interests"];
  13. foreach (var inter in ints)
  14. {
  15. Debug.Log(inter);
  16. }
  17. }
  18. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/123471
推荐阅读
相关标签
  

闽ICP备14008679号