C使用LitJson解析JSON

C使用LitJson解析JSONJSON JavaScriptOb 是一种轻量级的数据交换格式 它基于 JavaScript StandardECMA 2623rdEditio December1999 的一个子集 JSON 采用完全独立于语言的文本格式 但是也使用了类似于 C 语言家族的习惯 包括 C C C Java JavaScript Perl Python

     JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition – December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

              如果曾经使用过Json,就会清楚Json可以分为两个部分:

1.         Json Object(A collection of name/value pairs)

2.         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();

复制代码

 

 

 

3.         将上述两种方式的Json解析到JsonData

复制代码

 JsonData jsonData2 = JsonMapper.ToObject(json2); Debug.Log(jsonData2["name"] + " " + data2["info"]["sex"]); 

复制代码

 

 

4.         使用JsonMapper来处理Json

复制代码

Player player = new Player(); player.name = "peiandsky"; player.age = 23; player.sex = "male"; string json=JsonMapper.ToJson(player);

复制代码

 

 

5.         解析4中的json

Player player2 = JsonMapper.ToObject 
  
    (json); 
  

 

 

 

6.         使用最原始的方式生成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); } 

复制代码

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221642.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:37
下一篇 2026年3月17日 下午5:37


相关推荐

  • 软件测试工程师面试自我介绍部分模板

    软件测试工程师面试自我介绍部分模板自我介绍大致格式是 面试官你好 我叫 XX 学校排名比较好的可以提一下毕业院校 计算机专业毕业后 做软件测试工作有 X 年了 首先感谢您能给我这次面试机会 就职过的公司 负责过哪些项目 挑重点的 大型的 你比较熟悉的项目说 的哪些测试工作 后面就是你的简历里面写的关于个人技能的那些东西 感觉内容不够的话就说下你常用的测试工具和缺陷管理工具 最后再礼貌的加上我的自我介绍已完毕 您看我还有什么需要补充的吗 附我个人的自我介绍 话说前头 我菜的一批 我的自我介绍仅供参考 面试官你好 我是 XX 计算机专业

    2025年8月3日
    4
  • 百度分享js代码_javascript基础代码

    百度分享js代码_javascript基础代码转自:http://www.internetke.com/effects/run/2013/1108/117.html更多document.getElementById(“bdshell_js”).src=”http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=”+Math.ceil(new

    2022年10月8日
    6
  • pytorch – 数据读取机制中的Dataloader与Dataset

    pytorch – 数据读取机制中的Dataloader与Dataset1、人民币二分类要求:将第四套人民币中的一元和一百元进行二分类;怎么建立一个预测模型呢?考虑上一个博客中的机器学习模型训练五大步骤;第一是数据,第二是模型,第三是损失函数,第四是优化器,第五个是迭代训练过程。这里主要学习数据模块当中的数据读取,数据模块通常还会分为四个子模块,数据收集、数据划分、数据读取、数据预处理。在进行实验之前,需要收集数据,数据包括原始样本和标签;有了原始数据之后,…

    2022年5月1日
    290
  • 全网最全OpenClaw(小龙虾)安全放生指南:告别“龙虾”,不留安全隐患

    全网最全OpenClaw(小龙虾)安全放生指南:告别“龙虾”,不留安全隐患

    2026年3月12日
    3
  • 即梦AI(AI创作平台) v2.1.2 安卓版

    即梦AI(AI创作平台) v2.1.2 安卓版

    2026年3月12日
    2
  • 请说下封装 vue 组件的过程?_组件二次封装的必要性

    请说下封装 vue 组件的过程?_组件二次封装的必要性vue组件的定义●组件(Component)是Vue.js最强大的功能之一●组件可以扩展HTML元素,封装可重用代码●在较高层面上,组件是自定义元素,Vue.js的编译器为他添加特殊功能●有些情况下,组件也可以表现用is 特性进行了扩展的原生的HTML元素●所有的Vue组件同时也都是Vue实例,所以可以接受相同的选项对象(除了一些根级特有的选项),并提供相同的生命周…

    2026年3月3日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号