- 浏览: 305837 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
jakejone:
起作用了,谢谢啦
java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date -
BadBoyPgm:
不错 工作中刚好用到 看看知道怎么回事
ServletContextListener 应用 -
ifox:
不错哦,这个有用。找了好久呢、
struts2 iterator status index -
输入法:
上面书籍里有详细介绍?
js 获取select option 值 value text -
feihuale:
不错。。。真好,,,,学习了。。。
The error occurred while applying a parameter map.
JSON作为一种信息的载体伴随着AJAX的红火也越来越得到广大用户的青睐和认可!在没有使用JSON的时候,数据
从后台数据库到前台AJAX的返回显示,一般都要经过SQL查询--数据封装(封装成字符串或者XML文本)--前台解析
字符串或者XML文本,提取需要的东西出来。这其中包含了太多的转换关系,劳明伤财,也有很多人在探索一种
能够使大家都能认识的数据结构,这个时候大家都想到了JSON,可以说JSON也不是新的东西,出来好多年了,
Javascript一直都内置了JSON的支持,很多时候我们都是使用JSON的语法来定义一个Javascript的对象!看一看
JSON的官方网站(http://json.org/)就知道它目前基本上已经覆盖了大多数语言,这意味着大多数情况下的跨语言
环境下的数据交换,使用JSON是一个不错的选择!
1. Javascript(虽然已经内置支持,但是这里有一个开发包可以使用)
(1) 使用JSON语法定义一个Javascript对象
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
myJSONObject.bindings[0].method 将返回newURI
(2) 把普通字符串转换成JavaScript对象(需要扩展包支持)
var myObject = JSON.parse(myJSONtext, filter);
myData = JSON.parse(text, function (key, value) { return key.indexOf('date') >= 0 ? new Date(value) : value; });
(3) JSON对象转换成字符串
var myJSONText = JSON.stringify(myObject);
2. Java对JSON的支持(没有原生的支持,需要使用第三方的扩展包来实现)
Java的JSON开发包很多,也有很多实用且功能强大的
(1) json-lib (http://json-lib.sourceforge.net/usage.html)
a.) JSON和Java的类型对应关系
JSON Java
string java.lang.String, java.lang.Character, char
number java.lang.Number, byte, short, int, long, float, double
true|false java.lang.Boolean, boolean
null null
function net.sf.json.JSONFunction
array net.sf.json.JSONArray (object, string, number, boolean, function)
object net.sf.json.JSONObject
b.) json-lib的依赖库
jakarta commons-lang 2.3
jakarta commons-beanutils 1.7.0
jakarta commons-collections 3.2
jakarta commons-logging 1.1
ezmorph 1.0.3
xom 1.1(如果要用到xml文件的解析的话)
c.) 可运行实例
package com.gomt.json.jsonlib;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
import org.apache.commons.beanutils.PropertyUtils;
public class JsonLibMain {
public JsonLibMain() {
// TODO Auto-generated constructor stub
}
/**
* @param args
* @throws NoSuchMethodException
* @throws InvocationTargetException
* @throws IllegalAccessException
*/
public static void main(String[] args) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
boolean[] boolArray = new boolean[]{true,false,true};
JSONArray jsonArray = JSONArray.fromObject( boolArray );
System.out.println("***1*** = " + jsonArray );
Collection<string> list = new ArrayList<string>();
list.add( "first" );
list.add( "second" );
jsonArray = JSONArray.fromObject( list );
System.out.println("***2*** = " + jsonArray );
jsonArray = JSONArray.fromObject( "['json','is','easy']" );
System.out.println("***3*** = " + jsonArray );
Map<string object> map = new HashMap<string object>();
map.put( "name", "json" );
map.put( "bool", Boolean.TRUE );
map.put( "int", new Integer(1) );
map.put( "arr", new String[]{"a","b"} );
map.put( "func", "function(i){ return this.arr[i]; }" );
JSONObject jsonObject = JSONObject.fromObject( map );
System.out.println("***4*** = " + jsonObject );
jsonObject = JSONObject.fromObject( new MyBean() );
System.out.println("***5*** = " + jsonObject );
String json = "{name=\"json\",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}";
jsonObject = JSONObject.fromObject( json );
Object bean = JSONObject.toBean( jsonObject );
System.out.print("***6*** = " + jsonObject.get( "name" ) + " " + PropertyUtils.getProperty( bean, "name" ) );
System.out.print("\t " + jsonObject.get( "bool" ) + " = " + PropertyUtils.getProperty( bean, "bool" ) );
System.out.print("\t " + jsonObject.get( "int" ) + " = " + PropertyUtils.getProperty( bean, "int" ) );
System.out.print("\t " + jsonObject.get( "double" ) + " = " + PropertyUtils.getProperty( bean, "double" ) );
System.out.print("\t " + jsonObject.get( "func" ) + " = " + PropertyUtils.getProperty( bean, "func" ) );
List expected = JSONArray.toList( jsonObject.getJSONArray( "array" ) );
System.out.println("\t " + expected + " = " + (List) PropertyUtils.getProperty( bean, "array" ) );
json = "{bool:true,integer:1,string:\"json\"}";
jsonObject = JSONObject.fromObject( json );
MyBean myBean = (MyBean) JSONObject.toBean( jsonObject, MyBean.class );
System.out.print("***7*** = " + jsonObject.get( "bool" ) + " = " + Boolean.valueOf( myBean.isBool() ) );
System.out.print("\t " + jsonObject.get( "integer" ) + " = " +new Integer( myBean.getInteger() ) );
System.out.println("\t " + jsonObject.get( "string" )+ " = " + myBean.getString() );
//需要用到ezmorph
json = "{'data':[{'name':'clarance','userId':100001},{'name':'peng','userId':100002}]}";
Map<string>> classMap = new HashMap<string>>();
classMap.put( "data", Person.class );
myBean = (MyBean)JSONObject.toBean(JSONObject.fromObject(json), MyBean.class, classMap);
if(myBean != null && myBean.getData() != null) {
for(Person p : myBean.getData()) {
System.out.println("***8*** = " + "用户id: " + p.getUserId() + " 用户名: " + p.getName());
}
}
/*
Morpher dynaMorpher = new BeanMorpher( Person.class, JSONUtils.getMorpherRegistry() );
MorpherRegistry morpherRegistry = new MorpherRegistry();
morpherRegistry.registerMorpher( dynaMorpher );
List output = new ArrayList();
for( Iterator i = myBean.getData().iterator(); i.hasNext(); ){
output.add( morpherRegistry.morph( Person.class, i.next() ) );
}
myBean.setData( output );
*/
/**
* XML和JSON之间的转换,需要用到xom
*/
jsonObject = new JSONObject( true );
XMLSerializer xmls = new XMLSerializer();
String xml = xmls.write( jsonObject );
System.out.println("***9*** = " + xml);
jsonObject = JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}");
xmls = new XMLSerializer();
xml = xmls.write( jsonObject );
System.out.println("***10*** = " + xml);
jsonArray = JSONArray.fromObject("[1,2,3]");
xmls = new XMLSerializer();
xml = xmls.write( jsonArray );
System.out.println("***11*** = " + xml);
xml = "<a class='\"array\"'><e type='\"function\"' params='\"i,j\"'>return matrix[i][j];</e></a> ";
xmls = new XMLSerializer();
jsonArray = (JSONArray) xmls.read( xml);
System.out.println("***12*** = " + jsonArray );
}
}
package com.gomt.json.jsonlib;
import java.util.List;
import net.sf.json.JSONFunction;
public class MyBean implements java.io.Serializable {
private static final long serialVersionUID = -784610042144660631L;
private String name = "json";
private int pojoId = 1;
private char[] options = new char[]{'a','f'};
private String func1 = "function(i){ return this.options[i]; }";
private JSONFunction func2 = new JSONFunction(new String[]{"i"},"return this.options[i];");
private Integer integer;
private Boolean bool;
private String string;
private List<person> data;
public Boolean isBool() {
return bool;
}
public void setBool(Boolean bool) {
this.bool = bool;
}
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPojoId() {
return pojoId;
}
public void setPojoId(int pojoId) {
this.pojoId = pojoId;
}
public char[] getOptions() {
return options;
}
public void setOptions(char[] options) {
this.options = options;
}
public String getFunc1() {
return func1;
}
public void setFunc1(String func1) {
this.func1 = func1;
}
public JSONFunction getFunc2() {
return func2;
}
public void setFunc2(JSONFunction func2) {
this.func2 = func2;
}
public Integer getInteger() {
return integer;
}
public void setInteger(Integer integer) {
this.integer = integer;
}
public Boolean getBool() {
return bool;
}
public List<person> getData() {
return data;
}
public void setData(List<person> data) {
this.data = data;
}
}
package com.gomt.json.jsonlib;
import java.io.Serializable;
public class Person implements Serializable {
private static final long serialVersionUID = 7699163849016962711L;
private int userId;
private String name;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
d.) 运行结果
***1*** = [true,false,true]
***2*** = ["first","second"]
***3*** = ["json","is","easy"]
***4*** = {"func":function(i){ return this.arr[i]; },"arr":["a","b"],"int":1,"name":"json","bool":true}
***5*** = {"string":"","integer":0,"func1":function(i){ return this.options[i]; },"data":[],"pojoId":1,"name":"json","bool":false,"options":["a","f"],"func2":function(i){ return this.options[i]; }}
***6*** = json json true = true 1 = 1 2.2 = 2.2 function(a){ return a; } = function(a){ return a; } [1, 2] = [1, 2]
***7*** = true = true 1 = 1 json = json
***8*** = 用户id: 100001 用户名: clarance
***8*** = 用户id: 100002 用户名: peng
***9*** = <?xml version="1.0" encoding="UTF-8"?><o null="true"></o>
***10*** = <?xml version="1.0" encoding="UTF-8"?><o><bool type="boolean">true</bool><int type="number">1</int><name type="string">json</name></o>
***11*** = <?xml version="1.0" encoding="UTF-8"?><a><e type="number">1</e><e type="number">2</e><e type="number">3</e></a>
2007-12-7 9:08:29 net.sf.json.xml.XMLSerializer getType
信息: Using default type string
***12*** = [function(i,j){ return matrix[i][j]; }] </person></person></person></string></string></string></string></string></string>
发表评论
-
overflow hidden 隐藏超出元素
2009-09-10 08:50 2550<!DOCTYPE html PUBLIC " ... -
dwr调用返回List、Set或者Map的java方法
2009-09-08 15:52 27816、调用返回List、Set或者Map的java方法 6.1、 ... -
json-taglib
2009-09-08 15:26 6872(2) json-taglib (http://json-ta ... -
动态读取json数据的简单目录树js控件
2009-09-08 14:33 3726经过几天的努力终于完成一个动态读取json数据的简单目录树js ... -
dwr的路径问题
2009-07-16 16:14 1745//dwr 引用util.js,engine.js,beanN ... -
AJAX 聊天室实现原理终极解析
2009-06-29 15:18 3046闲来无事,做了一个AJAX聊天室,以前一直想做一个,因为我和几 ... -
javascript获取FCKeditor内容:
2009-06-27 14:31 1907javascript获取 ... -
DWR实例
2009-06-24 14:05 1580一个非常好的DWR实例 2007-12-02 14: ... -
dwr 使用笔记
2009-06-24 13:53 1151DWR是一个框架,简单的说就是能够在javascript直接调 ... -
dwr converter 配置
2009-06-24 12:19 1837在配置dwr.xml的时候,需要配置 这个元素 DWR帮助我 ... -
dwr与jsp,html页面间参数传递
2009-06-23 11:11 2519DWR 处理各种form表单Select/option,tab ... -
RIA(Rich Interface Applications)
2009-06-22 16:44 1497RIA(Rich Interface Applications ...
相关推荐
json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于idea插件 用于解析json json paser 属于...
最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json库 nlohmann json源代码最好用的c++json...
json11::Json jsonObject = json11::Json::parse(jsonString); if (jsonObject.is_object()) { // 处理解析成功的对象 } else { // 处理解析错误 } ``` 一旦你有了JSON对象,可以访问其成员或进行修改。例如,...
json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...
Java JSON API是Java平台上的库,提供了处理JSON的能力,包括解析JSON字符串、生成JSON对象以及进行JSON与Java对象之间的转换。 在Java中,有多种实现JSON API的库,如Jackson、Gson、org.json和json-lib等。本篇...
而JSON Schema则是一个JSON格式的规范,用于定义JSON数据的结构和限制,类似于XML Schema,它为JSON数据提供了验证规则,确保数据的准确性和一致性。 在JavaScript开发中,有时我们需要将JSON对象转换为JSON Schema...
在这个例子中,我们首先使用`json_tokener_parse`解析JSON字符串,然后通过`json_object_get_string`和`json_object_get_int`获取JSON对象中的数据,最后使用`json_object_put`释放内存。这就是`json-c`库基本的使用...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务和应用程序之间的数据传输。它易于人阅读和编写,同时也易于机器解析和生成。`net.sf.json`是开源项目Apache软件基金会下的一个...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传输数据。它以文本形式存储和传递数据,易于人阅读和编写,同时也易于机器解析和生成。`net.sf.json`是开源Java库,它...
jsonview是chrome浏览器的一个插件,用来在浏览器中查看json数据。比如你在浏览器中可以查看从服务器端传回来的json数据,这些数据可能没有经过格式化的,也或者是经过了unicode编码,没有缩进,没有换行等等,造成...
C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中的对象 /// Json格式...
可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`(将JSON字符串解析为Java对象)、`convertToMap()`(将JSON字符串转换为Map)以及`convertToList()`(将JSON字符串转换为List)等。...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在PHP中,JSON常用于与前端交互,传输数据。PHP 4.0版本虽然相对较旧,但仍然可以处理JSON数据,只是...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛应用于Web服务与客户端之间的数据传输。它易于人阅读和编写,同时也易于机器解析和生成。JSON文件通常以.js或.json为扩展名,其数据结构主要...
这篇关于“经典ASP读取JSON字符串/生成JSON对象,数组对象等”的知识将详细介绍如何在ASP环境中处理JSON数据。 1. **JSON对象与数组的结构**: JSON对象以大括号{}表示,键值对之间用逗号分隔。键必须是字符串,用...
**JsonSQL: SQL语句解析JSON文件** 在大数据处理和Web应用中,JSON(JavaScript Object Notation)格式已经成为数据交换的常见格式。然而,对于习惯使用SQL查询关系型数据库的人来说,处理JSON数据可能会觉得不太...
标题中的“PB解析json,解析JSON案例,解析jsondemo”表明了本文主要关注的是PowerBuilder(简称PB)如何处理JSON数据。在现代软件开发中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,...
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在Web开发中,JSON被广泛用于前后端数据传输,因为它简洁、直观且易于...
**Newtonsoft.Json.dll详解** `Newtonsoft.Json.dll`是一个由James Newton-King 开发的流行的JSON库,专门用于.NET框架的开发。它在Unity引擎中广泛使用,因为Unity支持C#编程,而`Newtonsoft.Json`库提供了强大的...
将json转换为javebean的工具,封装jsonschema2pojo,用户可以修改配置文件json2Beans.json,然后运行Json2JavaBean2.bat直接生成对应类。 能够批量转换json为bean,直接拷贝到项目中使用。 提醒: 需要提前安装java...