JSON学习 你的名字 2023-10-16 21:36 31阅读 0赞 **1.**JSON 语法是 JavaScript 对象表示语法的子集。 * l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对象 l 方括号保存数组 * * JSON 值可以是: l 数字(整数或浮点数) l 字符串(在双引号中) l 逻辑值(true 或 false) l 数组(在方括号中) l 对象(在花括号中) l null \------------------------------ **2.**用XML表示 [中国][Link 1] 部分省市数据如下: `<` `country` `>` `` `<` `name` `>中国</` `name` `>` `` `<` `province` `>` `` `<` `name` `>黑龙江</` `name` `>` `` `<` `cities` `>` `` `<` `city` `>哈尔滨</` `city` `>` `` `<` `city` `>大庆</` `city` `>` `` `</` `cities` `>` `` `</` `province` `>` `` `<` `province` `>` `` `<` `name` `>广东</` `name` `>` `` `<` `cities` `>` `` `<` `city` `>广州</` `city` `>` `` `<` `city` `>深圳</` `city` `>` `` `<` `city` `>珠海</` `city` `>` `` `</` `cities` `>` `` `</` `province` `>` `` `<` `province` `>` `` `<` `name` `>台湾</` `name` `>` `` `<` `cities` `>` `` `<` `city` `>台北</` `city` `>` `` `<` `city` `>高雄</` `city` `>` `` `</` `cities` `>` `` `</` `province` `>` `` `<` `province` `>` `` `<` `name` `>新疆</` `name` `>` `` `<` `cities` `>` `` `<` `city` `>乌鲁木齐</` `city` `>` `` `</` `cities` `>` `` `</` `province` `>` `</` `country` `>` 用JSON表示如下: `{` "name":"中国", "province":\[\{"name":"黑龙江","cities":\{"city":\["哈尔滨","大庆"\]\}\}, `{"name":"台湾","cities":{"city":["台北","高雄"]}},` `]` \} 这么看挺简单的 3.NET操作JSON JSON文件读入到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串。操作JSON通常有以下几种方式: 1. 原始方式:自己按照JSON的语法格式,写代码直接操作JSON字符串。如非必要,应该很少人会走这条路,从头再来的。 2. 通用方式:这种方式是使用开源的类库Newtonsoft.Json(下载地址http://json.codeplex.com/)。下载后加入工程就能用。通常可以使用JObject, JsonReader, JsonWriter处理。这种方式最通用,也最灵活,可以随时修改不爽的地方。 (1)使用JsonReader读Json字符串: string jsonText = @"{""input"" : ""value"", ""output"" : ""result""}"; JsonReader reader = new JsonTextReader(new StringReader(jsonText)); while (reader.Read()) { Console.WriteLine(reader.TokenType + "\t\t" + reader.ValueType + "\t\t" + reader.Value); } <span style="font-family: Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif; line-height: 18px; background-color: rgb(255, 255, 255);"> </span> (2)使用JsonWriter写字符串: StringWriter sw = new StringWriter(); JsonWriter writer = new JsonTextWriter(sw); writer.WriteStartObject(); writer.WritePropertyName("input"); writer.WriteValue("value"); writer.WritePropertyName("output"); writer.WriteValue("result"); writer.WriteEndObject(); writer.Flush(); string jsonText = sw.GetStringBuilder().ToString(); Console.WriteLine(jsonText); (3)使用JObject读写字符串: JObject jo = JObject.Parse(jsonText); string[] values = jo.Properties().Select(item => item.Value.ToString()).ToArray() <span style="line-height: 18px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">(4)使用JsonSerializer读写对象(基于JsonWriter与JsonReader):</span> <span style="line-height: 18px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="csharp">Project p = new Project() { Input = "stone", Output = "gold" }; JsonSerializer serializer = new JsonSerializer(); StringWriter sw = new StringWriter(); serializer.Serialize(new JsonTextWriter(sw), p); Console.WriteLine(sw.GetStringBuilder().ToString()); StringReader sr = new StringReader(@"{""Input"":""stone"", ""Output"":""gold""}"); Project p1 = (Project)serializer.Deserialize(new JsonTextReader(sr), typeof(Project)); Console.WriteLine(p1.Input + "=>" + p1.Output); 上面的代码都是基于下面这个Project类定义: class Project { public string Input { get; set; } public string Output { get; set; } } **4.** 内置方式:使用.NET Framework 3.5/4.0中提供的System.Web.Script.Serialization命名空间下的JavaScriptSerializer类进行对象的序列化与反序列化,很直接。 Project p = new Project() { Input = "stone", Output = "gold" }; JavaScriptSerializer serializer = new JavaScriptSerializer(); var json = serializer.Serialize(p); Console.WriteLine(json); var p1 = serializer.Deserialize<Project>(json); Console.WriteLine(p1.Input + "=>" + p1.Output); Console.WriteLine(ReferenceEquals(p,p1)); 参考链接在这里: [http://www.cnblogs.com/zxlovenet/p/3566802.html][http_www.cnblogs.com_zxlovenet_p_3566802.html] 百科[http://baike.baidu.com/link?url=4E4QlksKa3AIWx35bb-89laj\_hBf-uq2VFu9rTV9-K7iKBaFjf0CVp2yeKWBpJls13IyyOpZD3TE1v47fkmhFq][http_baike.baidu.com_link_url_4E4QlksKa3AIWx35bb-89laj_hBf-uq2VFu9rTV9-K7iKBaFjf0CVp2yeKWBpJls13IyyOpZD3TE1v47fkmhFq] [Link 1]: http://baike.baidu.com/view/61891.htm [http_www.cnblogs.com_zxlovenet_p_3566802.html]: http://www.cnblogs.com/zxlovenet/p/3566802.html [http_baike.baidu.com_link_url_4E4QlksKa3AIWx35bb-89laj_hBf-uq2VFu9rTV9-K7iKBaFjf0CVp2yeKWBpJls13IyyOpZD3TE1v47fkmhFq]: http://baike.baidu.com/link?url=4E4QlksKa3AIWx35bb-89laj_hBf-uq2VFu9rTV9-K7iKBaFjf0CVp2yeKWBpJls13IyyOpZD3TE1v47fkmhFq
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对象 你的名字/ 2023年10月16日 21:36/ 0 赞/ 32 阅读
相关 json学习 一、json转对象 import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson. 川长思鸟来/ 2023年05月31日 12:12/ 0 赞/ 13 阅读
相关 JSON 学习 JSON 总结内容 一、JSON 的定义 二、格式 三、在 JavaScript 中的 JSON 1. 一时失言乱红尘/ 2022年10月09日 02:57/ 0 赞/ 142 阅读
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对 灰太狼/ 2022年06月17日 13:26/ 0 赞/ 157 阅读
相关 JSON 学习 JavaScript Object Notation,JS 对象标记,是一种轻量级的数据交换格式。 [JSON 标准][JSON] JSON 介绍 简介 JS ╰半夏微凉°/ 2022年05月22日 23:18/ 0 赞/ 192 阅读
相关 JSON学习 JSON学习 [JSON][]([JavaScript][] Object Notation,JS对象简谱)是一种轻量级的数据交换格式。它基于 [ECMAScript][ 你的名字/ 2022年05月14日 18:34/ 0 赞/ 613 阅读
相关 json学习 [JSON字符串解析][JSON] [json在前后端数据交互中的应用][json] [Ajax+Json应用和实现省市联动][Ajax_Json] [JSON]: Dear 丶/ 2022年05月03日 08:00/ 0 赞/ 510 阅读
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对象 l 方括号保存数组 水深无声/ 2022年02月12日 13:45/ 0 赞/ 201 阅读
相关 JSON学习 文章目录 JSON介绍 概念 JSON使用 语法 JSON介绍 > [JSON官网][JSON] 概念 JSON 雨点打透心脏的1/2处/ 2021年09月29日 01:10/ 0 赞/ 256 阅读
还没有评论,来说两句吧...