Json解析
Posted SpringDragon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Json解析相关的知识,希望对你有一定的参考价值。
在Json解析中,{}代表一个对象,[]代表一个数组
在U3D中使用Json解析,一般先在Assets中新建一个Plugin的文件夹,把Litjson的插件放入到里面,然后进行解析
实例代码如下:
using System.Collections; using System.Collections.Generic; using UnityEngine; using LitJson; public class Person{ public string name; public int age; public int score; } public class JsonTest : MonoBehaviour { void Start () { //parJson (); //parJson2(); createJson(); } //解析json void parJson(){ string jsonStr = "{‘name‘:‘令狐冲‘,‘age‘:25,‘score‘:92}"; //Person person = JsonUtility.FromJson<Person> (jsonStr); //Debug.Log (person.name); //Litjson解析 Person person = JsonMapper.ToObject<Person>(jsonStr); Debug.Log (person.name); jsonStr = "[{‘name‘:‘令狐冲‘,‘age‘:25,‘score‘:92},{‘name‘:‘岳不群‘,‘age‘:48,‘score‘:89}]"; Person[] persons = JsonMapper.ToObject<Person[]> (jsonStr); foreach(Person p in persons){ Debug.Log (p.name); } } void parJson2(){ string jsonStr = "[{‘name‘:‘令狐冲‘,‘age‘:25,‘score‘:92},{‘name‘:‘岳不群‘,‘age‘:48,‘score‘:89}]"; JsonData jd = JsonMapper.ToObject (jsonStr); for(int i = 0; i < jd.Count; i++){ JsonData personJd = jd [i]; Debug.Log (personJd["name"]); } Debug.Log (jd[0]["age"]); } //生成json void createJson(){ //方法一 Person person = new Person(); person.name = "令狐冲"; person.age = 25; person.score = 92; string jsonStr = JsonMapper.ToJson (person); //Debug.Log (jsonStr); //方法二 //[{‘name‘:‘令狐冲‘,‘age‘:25,‘score‘:92},{‘name‘:‘岳不群‘,‘age‘:48,‘score‘:89}] JsonData jd = new JsonData(); //指定jsondata的类型 jd.SetJsonType (JsonType.Array); string[] name = new string[]{ "令狐冲", "岳不群", "林平之"}; int[] age = new int[]{ 25, 48, 21 }; int[] score = new int[]{ 92, 89, 85 }; for(int i = 0; i < name.Length; i++){ //创建每个person JsonData personJd = new JsonData(); personJd ["name"] = name [i]; personJd ["age"] = age [i]; personJd ["score"] = score [i]; jd.Add (personJd); } Debug.Log (jd.ToJson()); } }
以上是关于Json解析的主要内容,如果未能解决你的问题,请参考以下文章
使用 json rereiver php mysql 在片段中填充列表视图
ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项