使用了LitJson这个开源组件http://litjson.sourceforge.net/如果在C#脚本下使用该组件处理json很容易,在JavaScript脚本中处理其实也不难。。。首先要在Project里Import New Asset把LigJson.dll文件导入,然后在JavaScript脚本中就可以直接使用了。
function Start() {
var s : String = "{'name':'aaa'}";
var json : LitJson.JsonData = LitJson.JsonMapper.ToObject(s);
print(json["name"]);
}
function Update () {
}
JsonData实现的接口如下:IJsonWrapper, IList, ICollection, IEnumerable, IOrderedDictionary, IDictionary, IEquatable<JsonData>JsonData需要从Json字符串返回的类型来判断该JsonData类型是否为数组,这一点可以从它的IsArray方法可以看出
string s = "[{'name':'lisi'},{'name':'zhangsan'}]";
string a = "{'name':'aaa'}";
JsonData[] jarr = JsonMapper.ToObject<JsonData[]>(s);
print(jarr. IsArray);//返回true
if(jarr.IsArray){
foreach(JsonData jd in jarr){
print(jd["name"]);//返回结果: lisi
// zhangsan
}
}
JsonData jdata = JsonMapper.ToObject(s);
print(jdata.IsArray);//返回true
if (jdata.IsArray)
{
for (int i = 0; i < jdata.Count;i ++ )
{
print(jdata[i]["name"]);//返回的结果: lisi
//zhangsan
}
}
JsonData j = JsonMapper.ToObject(a);
print(j.IsArray);//返回false
print(j["name"]);//返回aaa
从上面的示例可以看出JsonData是否能以数组的方式访问需看json字符串返回的是否是数组类型的.示例展示了最基本得JsonData用法: 创建一个JsonData通常由JsonMapper的ToObject方法,这个方法有3个重载:JsonMapper.ToObject(JsonReader reader);JsonMapper.ToObject(string json);JsonMapper.ToObject(System.IO.TextReader reader);其中JsonReader类也是一个读取json字串的类,不过它是按行的方式读取,不能像key-value的方式读取json的值,第二个是最常见的创建JsonData的方式,它只需提供一个json字串即可,第三个是读取一个包含json字符的文本流来创建一个JsonDataJsonMapper中还有一个ToObject方法:public static T ToObject<T>();当然它也有三个重载,同上目前我主要使用这个方法来创建JsonData类型的数组
JsonData[] jarr = JsonMapper.ToObject<JsonData[]>(s);
foreach (JsonData jd in jarr)
{
print(jd.IsArray);//返回false false
}
其实大家看JsonData类的这个方法就知道了:public JsonData this[int index] { get; set; }public JsonData this[string prop_name] { get; set; }注意,如果指定的key相同的话,后者将会覆盖二:数组情况:
JsonData j = JsonMapper.ToObject(s);
JsonData jdata1 = new JsonData();
jdata1["wwww"] = "wuwu";
j.Add(jdata1);
print(JsonMapper.ToJson(j));
//返回: [{'name':'lisi'},{'name':'zhangsan'},{'wwww':'wuwu'}]
转自unity3d圣典论坛里面的
onejavaer(作者)
分享到:
相关推荐
unity\项目\Assets\Plugins\LitJson 第二部:引用litJson using LitJson; 第三步:litJson的使用 WWW www = new WWW(url, rawData, headers); yield return www; JsonData jd = JsonMapper.ToObject(www.text);...
Unity-JSON数据解析器,语言JavaScript,此版本是ALPHA测试版,最新资源下载:http://dev.grumpyferret.com/unity/
unity自定义json解析类似ORM模块和Newtonsoft.Json(unity版本)性能对比
Unity3D教程:解析Json1
这里有一点要注意,虽然Unity中使用.Net Framework 3.5作为工程的类库输出,但是不能使用Net35下面的DLL,而应该使用Net20下面的DL
Unity3d json库 ios上无错,库里没有用到反射
融合了XML与JSON的合成与解析(包括创建、更新、添加、删除、显示等操作)
Unity3D使用LitJson解析服务器上的JSON1
Unity3D脚本:Unity3D使用LitJson解析服务器上的JSON Posted on 2013年01月18日 by U3d / Unity3D脚本/插
直接导入到Unity3d中使用,支持android、IOS、HoloLens(UWP)的json解析库Newtonsoft.json。 This is an Unity3D package of Newtonsoft.Json 9.0.1. (UniGet compatible)
LitJson解析Json Posted on 2013年04月24日 by U3d / Unity3D 基础教程/被围观 147 次 LitJson解析Jso
Unity3D音乐开关与音量条 Unity3D教程:GUILayout.Window和GUI.Window的区别 在游戏中改变地形高度 教你如何创建unity3d多个定时器,以及定时器的其他操作 Unity3D使用LitJson解析服务器上的JSON IOS下文件保存和...
将Unity游戏场景中游戏对象的、旋转、缩放、平移与Prefab的名称导出在XML与JSON中。然后解析刚刚导出的XML或JSON,通过脚本把导出的游戏场景还原
Unity读取StreamingAssets文件夹下的Json文件并解析,含Litjson.dll文件
unity3D中解析xml文件和json文件字符串的类
unity3d的工具包,用途:将该dll文件下载好,保存至Assets/Plugins目录下。然后到vs工程里引用该dll,这样就可以去工程里调用JsonConvert.DeserializeObject(jsonStr)。达到解析json文件的目地;
在Unity3d工程中经常有需要将一些文件放到本地项目中,诸如json、txt、csv和xml等文件需要放到StreamingAssets和Resources文件夹目录下,在程序发布后这些文件基本是对用户可见的状态,造成信息泄露。有必要地的文件...
用法可参见http://blog.csdn.net/candycat1992/article/details/10940245
LitJson.dll