Unity3D--网络服务器返回的数据解析

1、服务器返回的数据格式

目前最常见的就是Json与XML格式

1-2、什么是Json?

它是一种轻量级的数据格式,一般用于数据交互

服务器返回给客户端的数据,一般都是JSON格式(文件下载除外http://www.jianshu.com/p/ef122b64d34f)

JSON的格式很像C#中字典和数组,类对象

标准的Json:key必须用双引号。

{“name” :"Jack","age":"10"} {"names":["Jack","rose","jock"] }

1-3、什么XML?

全称是Extensible Markup Language,译作“可扩展标记语言”

跟JSON一样,也是常用的一种用于交互的数据格式

一般也叫XML文档(XML Document)

一个常见的XML文档一般由以下部分组成**

1-文档声明

在XML文档的最前面,必须编写一个文档声明,用来声明XML文档的类型最简单的声明用encoding属性说明文档的字符编码

2-元素(Element)

一个元素包括了开始标签和结束标签拥有内容的元素:小黄人没有内容的元素:没有内容的元素简写:一个元素可以嵌套若干个子元素(不能出现交叉嵌套)全家福 第01张80注意:XML中的所有空格和换行,都会当做具体内容处理下面两个元素的内容是不一样的第1个小黄人第2个小黄人

3-属性(Attribute)

一个元素可以拥有多个属性video元素拥有name和length两个属性属性值必须用 双引号"" 或者 单引号'' 括住实际上,属性表示的信息也可以用子元素来表示,比如全家福 第一张30

2、Json解析

步骤描述:导入LitJson.dll;

1.首先下载LitJson源码

下载地址:http://lbv.github.io/litjson/

2.LitJson在Unity3D中的配置

在Unity3d的assets中的plugins目录下新建一个文件夹litjson,然后把litjson的源代码中所有.cs文件放到这里。Unity3D文档描述中plugins目录中的脚本会先运行,这样保证在我们写其他脚本的时候,litjson已经加载并运行好了。

3.在脚本中引用litjson命名空间,using LitJson ;using System.IO;

void Start ()

{

string path =""Assets/Resources/jsonxx.json";

string textOne = File.ReadAllText(path);

JsonDatadata1 =JsonMapper.ToObject(textOne);

for (int i =0; i < data1.Count; i++)

{

JsonDatanameValue = data1[i]["Name"];

Debug.Log(nameValue);

NameText.text= nameValue.ToString();

JsonDataIDValue = data1[i]["id"];

IDText.text= IDValue.ToString();

JsonDataAgeValue = data1[i]["age"];

AgeText.text= AgeValue.ToString();

Debug.Log("名字是:"+ NameText +"ID:"+ IDText);

}

}

===========

jsonxx.json文件

[

{"id" : 10,"Name" : "Leichaoxx","age":28},

{"id" : 20,"Name" : "LinfenPiPi","age":20},

{"id" : 30,"Name" : "SunYin","age":27}

]

3.xml解析

引入命名空间:using System.Xml;using System.IO;

xml文档 xmltext.xml

节点01

11

节点02

2

unity ,C#脚本

void Start()

{

string path="Assets/Resources/xmltext.xml";

XmlDocument XmlDoc=new XmlDocument();

//XmlDoc.Load(path);

XmlDoc.LoadXml(File.ReadAllText(path));

XmlNode rootNode=XmlDoc.FirstChild;

XmlNodeList nodeList=rootNode.ChildNodes;

foreach(XmlElement xe in nodeList)

{

        foreach(XmlElement xxe in xe.ChildNodes)

      {

if(xxe.Name=="Name")

{

Debug.Log(xxe.InnerText);

}

      }

}

}

你可能感兴趣的:(Unity3D--网络服务器返回的数据解析)