JSON学习 灰太狼 2022-06-17 13:26 155阅读 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); \} (2)使用JsonWriter写字符串: ![复制代码][copycode.gif] 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); ![复制代码][copycode.gif] (3)使用JObject读写字符串: JObject jo = JObject.Parse(jsonText); string\[\] values = jo.Properties().Select(item => item.Value.ToString()).ToArray(); (4)使用JsonSerializer读写对象(基于JsonWriter与JsonReader): ![复制代码][copycode.gif] 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); ![复制代码][copycode.gif] 上面的代码都是基于下面这个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类进行对象的序列化与反序列化,很直接。 ![复制代码][copycode.gif] 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)); ![复制代码][copycode.gif] [Link 1]: http://baike.baidu.com/view/61891.htm [copycode.gif]: /images/20220617/62bc822afd744f9ca9cce5e8e5917a78.png
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对象 你的名字/ 2023年10月16日 21:36/ 0 赞/ 30 阅读
相关 json学习 一、json转对象 import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson. 川长思鸟来/ 2023年05月31日 12:12/ 0 赞/ 11 阅读
相关 JSON 学习 JSON 总结内容 一、JSON 的定义 二、格式 三、在 JavaScript 中的 JSON 1. 一时失言乱红尘/ 2022年10月09日 02:57/ 0 赞/ 141 阅读
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对 灰太狼/ 2022年06月17日 13:26/ 0 赞/ 156 阅读
相关 JSON 学习 JavaScript Object Notation,JS 对象标记,是一种轻量级的数据交换格式。 [JSON 标准][JSON] JSON 介绍 简介 JS ╰半夏微凉°/ 2022年05月22日 23:18/ 0 赞/ 189 阅读
相关 JSON学习 JSON学习 [JSON][]([JavaScript][] Object Notation,JS对象简谱)是一种轻量级的数据交换格式。它基于 [ECMAScript][ 你的名字/ 2022年05月14日 18:34/ 0 赞/ 609 阅读
相关 json学习 [JSON字符串解析][JSON] [json在前后端数据交互中的应用][json] [Ajax+Json应用和实现省市联动][Ajax_Json] [JSON]: Dear 丶/ 2022年05月03日 08:00/ 0 赞/ 506 阅读
相关 JSON学习 1.JSON 语法是 JavaScript 对象表示语法的子集。 l 数据在名称/值对中 l 数据由逗号分隔 l 花括号保存对象 l 方括号保存数组 水深无声/ 2022年02月12日 13:45/ 0 赞/ 200 阅读
相关 JSON学习 文章目录 JSON介绍 概念 JSON使用 语法 JSON介绍 > [JSON官网][JSON] 概念 JSON 雨点打透心脏的1/2处/ 2021年09月29日 01:10/ 0 赞/ 255 阅读
还没有评论,来说两句吧...