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());
	}
}

  

原文地址:https://www.cnblogs.com/xingyunge/p/6806475.html