java中json怎么运用 在 java web开发中怎么使用json
java中json怎么运用?
一 简介:
JSON(JavaScript对象符号)是一种轻量级的数据交换格式。这是很容易为人类所读取和写入。这是易于机器解析和生成。它是基于JavaScript编程语言的一个子集 , 标准ECMA-262第三版- 1999年12月。JSON是一个完全独立于语言的文本格式,但使用C家族的语言,包括C,C ,C#,Java中的JavaScript,Perl的,Python中,和许多其他程序员所熟悉的约定。这些特性使JSON成为理想的数据交换语言。他和map很类似,都是以
键/值 对存放的。
二 JSON 使用须要用的JAR包:
commons-lang.jar
commons-beanutils.jar
commons-collections.jar
commons-logging.jar
ezmorph.jar
json-lib-2.2.2-jdk15.jar
三 使用JSON中的JSONObject:
1.创建一个JSONObject对象,并使用put()方法添加元素:
首先我们创建一个User对象以备后用:
public class User {
private int id
private String name
private String pwd
private String sex
//get,set方法
@Override
//重写他的toString方法
public String toString() {
return this.name "--" this.pwd "--" this.sex
}
}
例子如下:
import net.sf.json.JSONObject
public class TestJson {
private static JSONObject json = null
public static void main(String[] args) {
json = new JSONObject()
json.put("id","1")
json.put("name","张三")
json.put("pwd","123456")
System.out.println(json)
}
}
运行:
C:java>java TestJson
{"id":"1","name":"张三","pwd":"123456"}
通过这段代码我们就能很清淅的看到他的添加元素和map集合方式一样。
现在我们要将这个json对象放进一个JAVABEAN的User对象怎么弄呢?很简单
我们须要在 TestJson 类中的主方法中加入(放在System.out.println(json)这句话后面)
User user = new User()
user.setId(Integer.parseInt(json.getString("id")))
//json.getString("id")就是通过他的KEY值取得对应的value值
user.setName(json.getString("name"))
user.setPwd(json.getString("pwd"))
System.out.println(user)
这样我们就把json这个对象里的值放进user对象里面了。
运行:
C:java>java TestJson
{"id":"1","name":"张三","pwd":"123456"}
张三--123456--null
json添加元素除了用put()方法之外还可以用element()如:json.element("11", "222")
2.创建一个JSONArray对象,并添加元素:
JSONArray添加元素和list集合一样,当然取值也很像,代码如下
import net.sf.json.*
public class TestJson1 {
private static JSONObject json = null
private static JSONArray jsonArray = null
public static void main(String[] args) {
jsonArray = new JSONArray ()
jsonArray.add(0, "张三")
jsonArray.add(1, "李四")
jsonArray.add(2, "王五")
jsonArray.add(3, "小三")
System.out.println(jsonArray)
System.out.println(jsonArray.get(1))
}
}
输出结果为:
["张三","李四","王五","小三"]
李四
注:json的基本格式这些网上很多,就不多说了,我们只须记住一句话就行了:[]表示数组,{}表示对象就完了!
1.从Object到String
要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可
(1)示例一
Book book=new Book()
book.setName("Java")
book.setPrice(52.3f)
JSONObject object=JSONObject.fromObject(book)
System.out.println(object.toString())
(2)示例二
Book book=new Book()
book.setName("Java")
book.setPrice(52.3f)
Book book2=new Book()
book2.setName("C")
book2.setPrice(42.3f)
List list=new ArrayList()
list.add(book)
list.add(book2)
JSONArray arry=JSONArray.fromObject(list)
System.out.println(arry.toString())
//结果如下:
[{"name":"Java","price":52.3},{"name":"C","price":42.3}]
2.从String到Object
要先用String对象构造一个JSONObject或者JSONArray对象
(1)示例一
String json="{name:Java,price:52.3}"
JSONObject object=JSONObject.fromObject(json)
System.out.println(object.get("name") " " object.get("price"))
(2)示例二
String json="[{name:Java,price:52.3},{name:C,price:42.3}]"
JSONArray array=JSONArray.fromObject(json)
for(int i=0i< array.size()i ){
Map o=(Map)array.get(i)
System.out.println(o.get("name") " " o.get("price"))
}
3.从String到Bean
(1)单个Bean对象
String json="{name:Java,price:52.3}"
JSONObject object=JSONObject.fromObject(json)
Product product=(Product)JSONObject.toBean(object,Product.class)
System.out.println(product.getName() " " product.getPrice())
(2).Bean的数组
String json="[{name:Java,price:52.3},{name:C,price:42.3}]"
JSONArray array=JSONArray.fromObject(json)
Product[] products=(Product[]) JSONArray.toArray(array,Product.class)
for(Product p:products){
System.out.println(p.getName() " " p.getPrice())
}
自定义封装JSON操作的类
package com.util
import java.util.List
import java.util.Map
import net.sf.json.JSONArray
import net.sf.json.JSONObject
public class JsonHelper {
//从普通的Bean转换为字符串
public static String getJson(Object o){
JSONObject jo=JSONObject.fromObject(o)
return jo.toString()
}
//从Java的列表转换为字符串
public static String getJson(List list){
JSONArray ja=JSONArray.fromObject(list)
return ja.toString()
}
//从Java对象数组转换为字符串
public static String getJson(Object[] arry){
JSONArray ja=JSONArray.fromObject(arry)
return ja.toString()
}
//从json格式的字符串转换为Map对象
public static Map getObject(String s){
return JSONObject.fromObject(s)
}
//从json格式的字符串转换为List数组
public static List getArray(String s){
return JSONArray.fromObject(s)
}
//从json格式的字符串转换为某个Bean
public static Object getObject(String s,Class cls){
JSONObject jo=JSONObject.fromObject(s)
return JSONObject.toBean(jo, cls)
}
//从json格式的字符串转换为某类对象的数组
public static Object getArray(String s,Class cls){
JSONArray ja=JSONArray.fromObject(s)
return JSONArray.toArray(ja, cls)
}
}
在 java web开发中怎么使用json
JSON建构有两种结构:
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组2种结构,通过这两种结构可以表示各种复杂的结构
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。在Java中就是一种Map结构。
2、数组:数组在js中是中括号“[]”扩起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。在Java中是一种list结构。
经过对象、数组2种结构就可以组合成复杂的数据结构了。
二、Json in Javascript
使用Json语法创建对象
var people = {"name":"jack","sex":"mail"}
可以通过这种语法创建json对象,用“{}”括起来,用“,”隔开key:value
使用Json语法创建数组
var arr =[value1,value2...]
一个包含多个people的数组 peoples = [{"name":"jack","sex":"mail"},{"name":"lily","sex":"femail"}
Json数组可以通过这种语法创建,用"[]"括起来,数组元素之间用“,”分隔开,下面是这种语法的示意图:
在使用Json格式字符串与服务器交互时候,可以利用Json扩展的方法将字符串转换成一个JavaScript对象,或者将一个对象转换成Json格式字符串。不过先要登录http://www.json.org下载Json2.js文件。引入该包后,js对象直接用toJSONString()装换为字符串格式,字符串可以用parseJSON()转换成js对象。
访问数据
只需用点号表示法来表示数组元素。所以,要想访问 上面peoples列表的第一个条目的名字,只需在 JavaScript 中使用下面这样的代码:
peoples[0].name
利用这样的语法,可以处理任何 JSON 格式的数据,而不需要使用任何额外的 JavaScript 工具包或 API。
修改数据
正如可以用点号和方括号访问数据,也可以按照同样的方式轻松地修改数据:
peoples[0].name = "Rachmaninov"
在将字符串转换为 JavaScript 对象之后,就可以像这样修改变量中的数据。
java中怎么操作json数据
一 简介:
JSON(JavaScript对象符号)是一种轻量级的数据交换格式。这是很容易为人类所读取和写入。这是易于机器解析和生成。它是基于JavaScript编程语言的一个子集 , 标准ECMA-262第三版- 1999年12月。JSON是一个完全独立于语言的文本格式,但使用C家族的语言,包括C,C ,C#,Java中的JavaScript,Perl的,Python中,和许多其他程序员所熟悉的约定。这些特性使JSON成为理想的数据交换语言。他和map很类似,都是以
键/值 对存放的。
二 JSON 使用须要用的JAR包:
commons-lang.jar
commons-beanutils.jar
commons-collections.jar
commons-logging.jar
ezmorph.jar
json-lib-2.2.2-jdk15.jar
三 使用JSON中的JSONObject:
1.创建一个JSONObject对象,并使用put()方法添加元素:
首先我们创建一个User对象以备后用:
public class User {
private int id
private String name
private String pwd
private String sex
//get,set方法
@Override
//重写他的toString方法
public String toString() {
return this.name "--" this.pwd "--" this.sex
}
}
例子如下:
import net.sf.json.JSONObject
public class TestJson {
private static JSONObject json = null
public static void main(String[] args) {
json = new JSONObject()
json.put("id","1")
json.put("name","张三")
json.put("pwd","123456")
System.out.println(json)
}
}
运行:
C:java>java TestJson
{"id":"1","name":"张三","pwd":"123456"}
通过这段代码我们就能很清淅的看到他的添加元素和map集合方式一样。
现在我们要将这个json对象放进一个JAVABEAN的User对象怎么弄呢?很简单
我们须要在 TestJson 类中的主方法中加入(放在System.out.println(json)这句话后面)
User user = new User()
user.setId(Integer.parseInt(json.getString("id")))
//json.getString("id")就是通过他的KEY值取得对应的value值
user.setName(json.getString("name"))
user.setPwd(json.getString("pwd"))
System.out.println(user)
这样我们就把json这个对象里的值放进user对象里面了。
运行:
C:java>java TestJson
{"id":"1","name":"张三","pwd":"123456"}
张三--123456--null
json添加元素除了用put()方法之外还可以用element()如:json.element("11", "222")
2.创建一个JSONArray对象,并添加元素:
JSONArray添加元素和list集合一样,当然取值也很像,代码如下
import net.sf.json.*
public class TestJson1 {
private static JSONObject json = null
private static JSONArray jsonArray = null
public static void main(String[] args) {
jsonArray = new JSONArray ()
jsonArray.add(0, "张三")
jsonArray.add(1, "李四")
jsonArray.add(2, "王五")
jsonArray.add(3, "小三")
System.out.println(jsonArray)
System.out.println(jsonArray.get(1))
}
}
输出结果为:
["张三","李四","王五","小三"]
李四
注:json的基本格式这些网上很多,就不多说了,我们只须记住一句话就行了:[]表示数组,{}表示对象就完了!
1.从Object到String
要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可
(1)示例一
Book book=new Book()
book.setName("Java")
book.setPrice(52.3f)
JSONObject object=JSONObject.fromObject(book)
System.out.println(object.toString())
(2)示例二
Book book=new Book()
book.setName("Java")
book.setPrice(52.3f)
Book book2=new Book()
book2.setName("C")
book2.setPrice(42.3f)
List list=new ArrayList()
list.add(book)
list.add(book2)
JSONArray arry=JSONArray.fromObject(list)
System.out.println(arry.toString())
//结果如下:
[{"name":"Java","price":52.3},{"name":"C","price":42.3}]
2.从String到Object
要先用String对象构造一个JSONObject或者JSONArray对象
(1)示例一
String json="{name:Java,price:52.3}"
JSONObject object=JSONObject.fromObject(json)
System.out.println(object.get("name") " " object.get("price"))
(2)示例二
String json="[{name:Java,price:52.3},{name:C,price:42.3}]"
JSONArray array=JSONArray.fromObject(json)
for(int i=0i< array.size()i ){
Map o=(Map)array.get(i)
System.out.println(o.get("name") " " o.get("price"))
}
3.从String到Bean
(1)单个Bean对象
String json="{name:Java,price:52.3}"
JSONObject object=JSONObject.fromObject(json)
Product product=(Product)JSONObject.toBean(object,Product.class)
System.out.println(product.getName() " " product.getPrice())
(2).Bean的数组
String json="[{name:Java,price:52.3},{name:C,price:42.3}]"
JSONArray array=JSONArray.fromObject(json)
Product[] products=(Product[]) JSONArray.toArray(array,Product.class)
for(Product p:products){
System.out.println(p.getName() " " p.getPrice())
}
自定义封装JSON操作的类
package com.util
import java.util.List
import java.util.Map
import net.sf.json.JSONArray
import net.sf.json.JSONObject
public class JsonHelper {
//从普通的Bean转换为字符串
public static String getJson(Object o){
JSONObject jo=JSONObject.fromObject(o)
return jo.toString()
}
//从Java的列表转换为字符串
public static String getJson(List list){
JSONArray ja=JSONArray.fromObject(list)
return ja.toString()
}
//从Java对象数组转换为字符串
public static String getJson(Object[] arry){
JSONArray ja=JSONArray.fromObject(arry)
return ja.toString()
}
//从json格式的字符串转换为Map对象
public static Map getObject(String s){
return JSONObject.fromObject(s)
}
//从json格式的字符串转换为List数组
public static List getArray(String s){
return JSONArray.fromObject(s)
}
//从json格式的字符串转换为某个Bean
public static Object getObject(String s,Class cls){
JSONObject jo=JSONObject.fromObject(s)
return JSONObject.toBean(jo, cls)
}
//从json格式的字符串转换为某类对象的数组
public static Object getArray(String s,Class cls){
JSONArray ja=JSONArray.fromObject(s)
return JSONArray.toArray(ja, cls)
}
}
itjob祝你实现开发梦
java操作json
JSON json = JSONObject.fromObject(str)
MorphDynaBean m = (MorphDynaBean) JSONSerializer.toJava(json)
这个
怎么用java编写json文件
先生成map 然后用alibaba的fastjson,附件中的这个包,里头有你意想不到的API
例如:
Map map = ......
map的结构和要生成的字符串结构一致就行,你的optionset在map里头的结构就是一个list
list optionset= new ArrayList()
Map temp = new HashMap()temp.put(set,xxx)temp.put(value,xxx)
list.add(temp)
....有多少个就添加多少,
然后把list添加到最外层的Map对象中;
map.put(optionset,list) key就是json字符中对应的key
拼装好了map然后就是下一句就搞定了
String josnStr = JSONObject.toJSONString(map)
关于java中的json
"data"后边怎么没有冒号?
{"data:{"create":1,"fans":0,"home":1,"mentions":0,"private":0},"errcode":0,"msg":"ok","ret":0}
JSONObject jo=JSONObject.fromObject(string)
这样试试