`
foryougeljh
  • 浏览: 116404 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JSON 基础

 
阅读更多

JSON 示例

按照最简单的形式,可以用下面这样的 JSON 表示名称 / 值对:
{ "firstName": "Brett" }

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }

{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
]}

{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}

JSON语法格式


对象:对象包含在{}之间
属性:采用Key-Value对来表示。属性之间使用逗号分开。string : value
数组:数组存放在[]之间[elements]
元素:元素之间用逗号分开
值:值可以是字符串,数字,对象,数组,true,false,null


处理JSON数据
要应用JSON,你需要像处理XML一样对JSON格式的数据进行解析。
由于其设计简单,Javascrīpt内置的eval()过程可以很方便地对JSON进行解析。
如下面的代码片断所示:
var testObject = eval('(' + json_data + ')');


解析JSON例子
<html>
<head>
<meta name="vs_defaultClientscrīpt" content="Javascrīpt">
<script type='text/javascript'>
function jsontest() {
//json格式字符串
var jsontext = "{"man":{"weight":"75kg","age":"24"},"ar":["1","2","3","4"]}" ;
//解析json
var aman = eval('('+jsontext+')');
alert(aman.man.weight);

//JSON是JavaScript原生格式,处理JSON格式的数据不需要使用任何额外的工具包或API
//JSON对象
var json = {"man":{"weight":"75kg","age":"24"},"ar":["1","2","3","4"]};
alert(json.man.age);
//修改JSON数据 可以用.和[]导航
json.man.age = 50;
alert(json.man.age);//修改后的值
alert(json.ar[0]);
}
</script>
</head>
<body onload="jsontest();">
</body>
</html>

JSON应用(java&javascript)
1.下载相关的JSON相关jar包( http://json-lib.sourceforge.net/ )
WEB-INF/lib 添加如下jar
json-lib-2.2.3-jdk15.jar
jakarta commons-lang 2.4
jakarta commons-beanutils 1.7.0
jakarta commons-collections 3.2
jakarta commons-logging 1.1.1
ezmorph 1.0.6

需用到json、xml之间的转换需要 xom-1.1.jar
2.下载 相关的 js
json.js


有两种需求,一种是 从java 转 js ,二是从 js 到 java ,
不管哪种需求,先 在 java 端把相应的类建好,例如


(一)如果从 java 到 js ,则 新建 java对象
import net.sf.json.JSONObject;

public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) throws Exception{
User user = new User();
user.setName("张山");
JSONObject json = JSONObject.fromObject(user);//将普通对象转换成JSON对象
String text = json.toString();//将JSON对象转换成字符串
System.out.println(text);//可以将此字符串返回给前台JS
}
/**
* 在 js端引入json.js,然后对得到的字符串text 使用
* var jsObj = JSON.parse(text);
* 便得到了 js端的对象jsObj,再直接对
* var name = jsObj.name;
* 就可以了得到 user 的 name 的值 "张三" 了;
*/

/**
* 也可在 js端用函数eval('('+xmlHttp.responseText+')')将后台传过来的字符串转换对象
* var jsObj = eval('('+xmlHttp.responseText+')')
* 便得到了 js端的对象jsObj,再直接对
* var name = jsObj.name;
* 就可以了得到 user 的 name 的值 "张三" 了;
*/

}

java转换json对象常用方法

Java代码转换成json代码
1.List集合转换成json代码
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray = JSONArray.fromObject( list );

2.Map集合转换成json代码
Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
JSONObject jsonMap = JSONObject.fromObject(map);

3.Bean转换成json代码
JSONObject jsonObject = JSONObject.fromObject(new JsonBean());

4.数组转换成json代码
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);

5. 一般数据转换成json代码
JSONArray jsonArray = JSONArray.fromObject("['json','is','easy']" );

6.json数据过滤
适合一个对象有很多属性,而前台只需要个别属性时。
如person对象有id,name,password,email属性,前台只需要name属性
Person p1 = new Person(1,"ljh1","111111","12000380811");
JsonConfig config = new JsonConfig();
config.setExcludes(new String[]{"id","password","email"});//排除相应的属性

JSONObject obj = JSONObject.fromObject(p1,config);


(二) 如果从 js 到 java , 则在js端,
var jsObj = new Object();
jsObj.name = "张三";
然后用
var text = JSON.stringify(jsObj);
alert(text);
得到字符串text,再把text传给 java ,
java 拿到 text 后
JSONObject jso = JSONObject.fromObject(text);
User user= (User) jso.toBean(jso, User.class);
便可以得到 user 对象了
(如果不需要转化为User类型或者没有对应的User类,则可直接用 jso.get(key);来取值)

分享到:
评论

相关推荐

    JSON基础教程.

    ### JSON基础教程详解 #### 一、JSON简介与优势 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。相较于XML,JSON的数据格式更为简洁,这使得它在...

    JSON基础教程+中文CHM版_JSON_webapi_

    “JSON基础教程.CHM”和“JSON基础教程.pdf”分别提供了Windows帮助文件和PDF文档格式的教程,方便用户在不同设备和环境下学习。CHM文件适合在Windows系统下查看,包含了丰富的内链和索引,而PDF文件则适合离线阅读...

    Java+Servlet+Jquery+Json基础示例

    在这个"Java+Servlet+Jquery+Json基础示例"中,我们可以看到如何将这四种技术融合在一起创建一个Web应用。首先,用户通过前端界面(HTML+CSS+Jquery)发送Ajax请求,Jquery负责包装和发送这些请求,通常是以Json格式...

    Ajax及JSON基础

    Ajax及JSON基础,个人总结,相当简单,经过测试,运行正确!

    JSON基础归纳整理

    在了解了JSON的基础知识之后,开发者可以进一步学习如何使用各种编程语言提供的库来处理JSON数据。例如,Google提供的Gson库是一个非常流行的Java库,用于将Java对象转换成JSON格式以及将JSON字符串转换成相应的Java...

    JSON基础教程.CHM

    JSON基础教程.CHM

    json基础文档

    ### JSON基础文档与Gson应用详解 #### 一、JSON简介及基本操作 **1. 使用`JsonObject`写JSON** - **概念介绍**: `JsonObject`是JSON中最基本的数据结构之一,它允许我们以键值对的形式存储数据。在Java中,我们...

    IBM的JSON基础入门指南

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,因其简洁和高效而广泛应用于Web服务和JavaScript之间的数据交互。JSON格式的设计目标是为了人类可读和易于编写,同时也方便机器解析和生成。它...

    json基础学习必备

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,因其简洁、易读、易解析的特性,在异步应用程序中广泛用于发送和接收信息。JSON格式的设计灵感来源于JavaScript编程语言,允许开发者直接将...

    json基础架包

    该压缩文件包含的架包为:commons-beanutils-1.8.0.jar,commons-collections-3.2.1.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,json-lib-2.4-jdk15.jar,xom-1.2.6.jar

    json基础知识附带实例

    json

    免费 JSON基础教程.pdf 了解JSON的好文档

    JSON全称为JavaScript Object Notation,是一种轻量级的数据交换格式。它基于JavaScript的一个子集,但目前已经成为一种独立于语言的数据格式标准,在多种编程语言中得到支持。JSON格式可以使用纯文本的方式来存储和...

    Ajax&amp;Json基础学习和redis基础学习.zip

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Redis是一个开源的内存数据结构存储系统,可以作为数据库、缓存和消息中间件使用,具有高性能、高...

    JSON+js+jquery+ajax基础.zip

    1. JSON基础知识:介绍JSON的语法结构,如对象和数组的表示,以及如何在JavaScript中创建和解析JSON对象。 2. JavaScript基础:深入讲解JavaScript的基本语法,包括变量、函数、对象等,并演示如何使用JavaScript...

    JsonView工具

    ### JSON基础 JSON,全称JavaScript Object Notation(JavaScript对象表示法),是一种轻量级的数据交换格式。它采用完全独立于语言的文本格式,但也使用了类似于C家族语言的习惯,包括C、C++、C#、Java、...

    JSON 入门指南--(PDF电子书+随书源码)免费

    1. **JSON基础**:介绍JSON的起源和特点,以及为什么在Web开发中如此重要。会讲解JSON的数据结构,包括对象(键值对)和数组(有序列表)两种基本类型。 2. **JSON语法**:详细解析JSON的语法规则,如如何定义键值...

    Android 安卓 json解析

    JSON基础知识 JSON是一种文本格式,基于JavaScript语法,但独立于语言。它以键值对的形式存储数据,如`"key": "value"`。数组可以通过方括号`[]`表示,对象通过大括号`{}`表示。例如: ```json { "name": "John", ...

Global site tag (gtag.js) - Google Analytics