C#使用LitJson解析JSON(转)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
如果曾经使用过Json,就会清楚Json可以分为两个部分:
- Json Object(A collection of name/value pairs)
- JSON Array (An ordered list of values)
解析JSON的开源包非常多,在各种场合使用非常广泛,尤其长于网络传输。
本文介绍使用LitJson,并用C#语言来介绍使用JSON,可以在C#应用程序,web程序,还有Unity3d C#脚本中使用。
第一步:先去下载LitJson并导入当前的项目。
第二步:litJson的几个实例方式
1.使用JsonData来处理生成json:{"name":"peiandsky","age":28,"sex":"male"}
JsonData data = new JsonData();
data["name"] = "peiandsky";
data["age"] = 28;
data["sex"] ="male";
string json1= data.ToJson();
2.对象中嵌套对象:{"name":"peiandsky","info":{"sex":"male","age":28}}
JsonData data2 = new JsonData();
data2["name"] = "peiandsky";
data2["info"] = new JsonData();
data2["info"]["sex"] = "male";
data2["info"]["age"] = 28;
string json2 = data2.ToJson();
- 将上述两种方式的Json解析到JsonData
JsonData jsonData2 = JsonMapper.ToObject(json2); Debug.Log(jsonData2["name"] + " " + data2["info"]["sex"]);
- 使用JsonMapper来处理Json
Player player = new Player();
player.name = "peiandsky";
player.age = 23;
player.sex = "male";
string json=JsonMapper.ToJson(player);
- 解析4中的json
Player player2 = JsonMapper.ToObject<Player>(json);
- 使用最原始的方式生成Json
将数组转换成json:["one","two","three","four"]
JsonWriter writer = new JsonWriter();
writer.WriteArrayStart();
writer.Write("one");
writer.Write("two");
writer.Write("three");
writer.Write("four");
writer.WriteArrayEnd();
将复合对象转换成json字符串:{"book":{"title":"android game!","author":"pei","bookdetail":{"pages":429,"about":null}}}
JsonWriter writer2 = new JsonWriter();
writer2.WriteObjectStart();
writer2.WritePropertyName("book");
writer2.WriteObjectStart();
writer2.WritePropertyName("title");
writer2.Write("android game!");
writer2.WritePropertyName("author");
writer2.Write("pei");
writer2.WritePropertyName("bookdetail");
writer2.WriteObjectStart();
writer2.WritePropertyName("pages");
writer2.Write(429);
writer2.WritePropertyName("about");
writer2.Write(null);
writer2.WriteObjectEnd();
writer2.WriteObjectEnd();
writer2.WriteObjectEnd();
Debug.Log(writer2.ToString());
这种方式非常不方便,不建议使用。
在使用LitJson中,建议使用JsonData,JsonMapper来处理Json的编码和解析。
Person[] p_array = { p,p,p};
string json_array=JsonMapper.ToJson(p_array);
Debug.Log(json_array);
JsonData pa = JsonMapper.ToObject(json_array);
Debug.Log(pa.IsArray+" "+pa.Count);
for (int i = 0; i < pa.Count;i++ )
{
Debug.Log(pa[i]["name"]+"-"+pa[i]["age"]+"-"+pa[i]["score"]+"-"+pa[i]["birth"]);
int age = int.Parse(pa[i]["age"].ToString());
Debug.Log(age);
}
C#使用LitJson解析JSON(转)的更多相关文章
- 使用 LitJson 解析Json并读取数据
开发中经常要获取各种数据,而现今比较常见的数据便是Json数据格式,网上也有很多解析Json数据的方法,但是 作为小白的我,对于那些个高大上的方法理解不够,这不找了许久发了这些一个 LitJson 库 ...
- 在Unity中使用LitJson解析json文件
LitJson 这个库需要找资源,找到LitJson.dll后将它放在Assets文件夹下,在脚本中使用using引入即可 测试代码 json文件: {"Archice":[{&q ...
- C#使用LitJson解析Json数据
//接受MQ服务器返回的值 private void jieshou(string zhiling, string can1, string can2, string can3, string can ...
- C#使用LitJson对Json数据解析
JSON 介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - ...
- Unity3D_(数据)LitJson创建和解析Json
LitJson github: 传送门 JsonUtility创建和解析Json 传送门 LitJson.dll百度云盘 传送门 密码:p1py 加载LitJson.dll到Unity中 在Asset ...
- LitJson处理Json
LitJSON是一个.NET平台下处理JSON格式数据的类库,小巧.快速.它的源代码使用C#编写,可以通过任何.Net平台上的语言进行调用,目前最新版本为LitJSON 0.9. 下载地址: http ...
- 超级好用的c#解析JSON
分享c# 一款非常好用的操作Json的dll,litjson VS2017 NuGet 搜索litjson,如下图: 例子: 在项目中新建一个txt文本文件,内容如下: [ { , "use ...
- Unity3D_(数据)JsonUtility创建和解析Json
Json 百度百科:传送门 LitJson创建和解析Json 传送门 Json数据解析在Unity3d中的应用 传送门 一.使用JsonUnity创建Json using System.Collect ...
- Xamarin.Android下获取与解析JSON
一.新建项目 1.新建一个Android项目,并命名为为NetJsonList 2.右击引用,选择添加引用,引用System.Json.dll 二.同步请求 既然是跨平台,我们自然不能按照java下的 ...
随机推荐
- 使用DOM4J解析XML文档,以及使用XPath提取XML文档
使用DOM4J解析XML文档 需要首先下载DOM4J工具包.这是个第三方工具包 在使用DOM4J解析的时候需要导入 DOM4J的JAR包 下载DOM4J工具包->在MyEclipse中新建lib ...
- 用android代码显示图片的一部分源码
ShowPoritionPictureActivity代码: [java] <span style="font-size:16px;"> package com.iwi ...
- 写一些脚本的心得总结系列第4篇-------从数据库同步到redis
5.从数据库同步到redis的. redis把数据放内存里,读取都非常方便,也提供了远超memcache的丰富数据结构.下面我举2个例子,比如1)把数据从数据库写入到redis: <?php $ ...
- CSS3样式linear-gradient的使用
linear-gradient linear-gradient是CSS3中新增的样式,主要用于颜色的渐变效果.MDN地址 linear-gradient在不同内核下使用方式不同,详细内容可参考w3cp ...
- python3.4 data type
#coding=utf-8 #Python 3.4 https://docs.python.org/3.4/library/ #IDE:Eclipse +PyDev Window10 import a ...
- Django 同步数据库命令syncdb,makemigrations,migrate
syncdb只支持新增模型到数据库中 2条命令 你将使用2条命令进行迁移和操纵数据库schema: migrate,用来使迁移生效,以及未生效时报告它们的状态. makemigrations,用来根据 ...
- Fatal error: Call to undefined function oci_connect()
http://stackoverflow.com/questions/22478387/call-to-undefined-function-oci-connect Whenever you conn ...
- 修改cookie
查看本地cookie方法一:点击 地址栏前面的 感叹号 !方法一:F12-->network->回车 请求一下 地址栏-->.出现的地址-->点击. header cookie ...
- Sublime Text3下如何快速搭建开发环境
安装好Sublime Text3之后,简单几步就可以搭建一个好用的开发环境. sublime的设置包括自定义设置以及插件系统. 打开菜单Preferences -> Settings,编辑自定义 ...
- spark yarn任务的executor 无故 timeout之原因分析
问题: 用 spark-submit --master yarn --deploy-mode cluster --driver-memory 2G --num-executors 6 --execu ...