JSON学习 水深无声 2022-02-12 13:45 200阅读 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":["广州","深圳","珠海"]}},` `` `{"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); \} (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(); (4)使用JsonSerializer读写对象(基于JsonWriter与JsonReader): 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 赞/ 31 阅读
相关 json学习 一、json转对象 import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson. 川长思鸟来/ 2023年05月31日 12:12/ 0 赞/ 12 阅读
相关 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 赞/ 612 阅读
相关 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 赞/ 255 阅读
还没有评论,来说两句吧...