简介:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。
JSON 语法规则:
● 数据在名称/值对中
● 数据由逗号分隔
● 花括号保存对象
● 方括号保存数组
(1). 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。
(2). 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。
示例:
{ "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ] }
JavaScript处理JSON格式数据:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="../script/jquery-1.10.1.js"></script> <style type="text/css"> </style> <title>JavaScript处理JSON格式数据</title> </head> <body> <div> <input type="button" id="button1" value="JavaScript处理JSON格式数据" /> <div id="result" ></div> </div> <script type="text/javascript"> var obj = { "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ] }; $("#button1").click(function() { var strResult = ""; for(var i=0; i<obj.employees.length; i++) { strResult += obj.employees[i].firstName + " " + obj.employees[i].lastName + "<br/>"; } $("#result").html(strResult); }) </script> </body> </html>
服务器输出JSON格式数据(以Java为例,将Java对象转化为JSON格式数据):
package com.wgc.util; import java.util.Map; import java.util.Set; /* 我们并未对 Java 对象作严格的检查。不被支持的对象(例如 List)将直接抛出 RuntimeException 。 此外,为了保证输出的 JSON 是有效的,Map<String, Object> 对象的 Key 也不能包含特殊字符。 循环引用的对象会引发无限递归 */ public class JSONUtil { //将 String 对象编码为 JSON static String string2Json(String s) { StringBuilder sb = new StringBuilder(s.length()+20); sb.append('\"'); for (int i=0; i<s.length(); i++) { char c = s.charAt(i); switch (c) { case '\"': sb.append("\\\""); break; case '\\': sb.append("\\\\"); break; case '/': sb.append("\\/"); break; case '\b': sb.append("\\b"); break; case '\f': sb.append("\\f"); break; case '\n': sb.append("\\n"); break; case '\r': sb.append("\\r"); break; case '\t': sb.append("\\t"); break; default: sb.append(c); } } sb.append('\"'); return sb.toString(); } //将Number类型的数据转换成JSON static String number2Json(Number number) { return number.toString(); } //将Boolean类型的数据转换成JSON static String boolean2Json(Boolean bool) { return bool.toString(); } //将数组编码为 JSON 格式 static String array2Json(Object[] array) { if (array.length==0) return "[]"; StringBuilder sb = new StringBuilder(array.length << 4); sb.append('['); for (Object o : array) { sb.append(toJson(o)); sb.append(','); } // 将最后添加的 ',' 变为 ']': sb.setCharAt(sb.length()-1, ']'); return sb.toString(); } //将 Map<String, Object> 编码为 JSON 格式 static String map2Json(Map<String, Object> map) { if (map.isEmpty()) return "{}"; StringBuilder sb = new StringBuilder(map.size() << 4); sb.append('{'); Set<String> keys = map.keySet(); for (String key : keys) { Object value = map.get(key); sb.append('\"'); sb.append(key); sb.append('\"'); sb.append(':'); sb.append(toJson(value)); sb.append(','); } // 将最后的 ',' 变为 '}': sb.setCharAt(sb.length()-1, '}'); return sb.toString(); } //统一处理任意的 Java 对象 public static String toJson(Object o) { if (o==null) return "null"; if (o instanceof String) return string2Json((String)o); if (o instanceof Boolean) return boolean2Json((Boolean)o); if (o instanceof Number) return number2Json((Number)o); if (o instanceof Map) return map2Json((Map<String, Object>)o); if (o instanceof Object[]) return array2Json((Object[])o); throw new RuntimeException("Unsupported type: " + o.getClass().getName()); } }
Spring MVC输出JSON:
Spring MVC的MappingJacksonJsonView借助Jackson框架的ObjectMapping将模型数据转换为JSON格式输出。默认情况下,MappingJacksonJsonView会将模型中的所有数据都输出为JSON,这显然是不合适的,可以通过renderedAttributes指定模型中哪些属性需要输出。
<bean id="userListJson" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" p:renderedAttributes="userList"/>
相关推荐
1. **创建JSON对象**:使用大括号`{}`表示对象,花括号`[]`表示数组,键值对之间用逗号分隔,如`{"name": "John", "age": 30, "city": "New York"}`。 2. **序列化和反序列化**:在JavaScript中,`JSON.stringify()`...
json_笔记
### JSON学习笔记:深入了解JSON与Spring框架中的初始化机制 #### JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁性和易读性而著称,不仅适用于人眼阅读,也便于机器解析和...
XML&JSON笔记.docx
这个学习笔记主要围绕`json-lib`的使用方法和关键特性进行阐述。 首先,`json-lib`支持多种Java对象到JSON的转换,包括基本类型、数组、集合、Map以及自定义的Java类。例如,你可以通过以下方式将一个HashMap转换为...
### WCF返回JSON学习笔记 #### 一、WCF与JSON简介 - **WCF (Windows Communication Foundation)**:是微软开发的一个框架,用于构建服务导向的应用程序。它提供了多种通信协议的支持,包括HTTP、TCP等,并且支持...
### JSON学习笔记:深入理解与应用 #### 一、JSON简介与重要性 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于ECMAScript的一个子集,采用...
1. **JavaBean和JSON的互换**:可以通过库如Gson或Jackson,将JavaBean对象序列化为JSON字符串,或者将JSON字符串反序列化为JavaBean对象。 2. **List和JSON的互换**:同样,通过库的辅助,可以将List对象转换为JSON...
Ajax和Json的笔记
本篇学习笔记将深入探讨Jackson框架的核心概念和使用方法,帮助你轻松应对JSON与Java对象之间的转换。 1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能...
### JavaScript 数组对象 JSON 学习笔记 #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 #####...
在本文档《json 学习笔记_***.pdf》中,主要介绍了在Java开发中,如何使用三个常用的JSON处理工具:struts json,json_lib,jackson-mapper。同时,也提到了在使用这些工具时可能遇到的一些常见错误及其处理方法。 ...
1. JSON基础:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但与编程语言无关。JSON数据结构主要包括对象(键值对的集合,用花括号{}包围)和数组...
笔记附件_localConfig.json
这篇学习笔记将深入探讨这两种数据结构的特性和用法。 首先,我们来了解JavaScript中的数组对象。数组是一种有序的数据集合,可以存储任意类型的数据,包括数字、字符串、对象等。在JavaScript中,数组是对象的一种...
1. JSON基本概念: - JSON是一种文本格式,易于人阅读和编写,同时也易于机器解析和生成。 - JSON数据结构主要由对象(键值对的集合,用花括号{}包围)和数组(有序元素列表,用方括号[]包围)组成。 - 对象中的...
1. JSON的基本结构:JSON数据由键值对(key-value pairs)组成,键和值之间用冒号隔开,键值对之间用逗号分隔。键必须是字符串,而值可以是字符串、数字、布尔值、数组、对象或者null。 2. JSON的数据类型:字符串...
笔记可能讲解JSON的基本语法,如何在JavaScript中解析和生成JSON,以及JSON在前后端数据传输中的应用。 ES6(ECMAScript 2015)是JavaScript的第六版标准,引入了许多新特性,提高了代码的简洁性和可读性。笔记可能...
ALTER TABLE [db.]table UPDATE column1 = expr1 [, ...] WHERE filter_expr ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr 可以看出,ClickHouse的删除修改语句以ALTER TABLE开头,而...
1. JSON在JavaScript中的使用 JSON数据由键值对组成,被花括号包围。每个键值对由双引号包裹,键和值之间用冒号分隔,不同键值对间用逗号分隔。例如: ```javascript var jsonObj = { "key1": 12, "key2": "abc...