json搞的头疼,总是索不到自己想要的!
-------------------------------实例1-------------------------------
package com.json.java;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JSONObjectSample {
//创建JSONObject对象
private static JSONObject createJSONObject(){
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "kevin");
jsonObject.put("Max.score", new Integer(100));
jsonObject.put("Min.score", new Integer(50));
jsonObject.put("nickname", "picglet");
return jsonObject;
}
public static void main(String[] args) {
JSONObject jsonObject = JSONObjectSample.createJSONObject();
//输出jsonobject对象
System.out.println("jsonObject==>"+jsonObject);
//判读输出对象的类型
boolean isArray = jsonObject.isArray();
boolean isEmpty = jsonObject.isEmpty();
boolean isNullObject = jsonObject.isNullObject();
System.out.println("isArray:"+isArray+" isEmpty:"+isEmpty+" isNullObject:"+isNullObject);
//添加属性
jsonObject.element("address", "swap lake");
System.out.println("添加属性后的对象==>"+jsonObject);
//返回一个JSONArray对象
JSONArray jsonArray = new JSONArray();
jsonArray.add(0, "this is a jsonArray value");
jsonArray.add(1,"another jsonArray value");
jsonObject.element("jsonArray", jsonArray);
JSONArray array = jsonObject.getJSONArray("jsonArray");
System.out.println("返回一个JSONArray对象:"+array);
//添加JSONArray后的值
//{"name":"kevin","Max.score":100,"Min.score":50,"nickname":"picglet","address":"swap lake",
//"jsonArray":["this is a jsonArray value","another jsonArray value"]}
System.out.println(jsonObject);
//根据key返回一个字符串
String jsonString = jsonObject.getString("name");
System.out.println("jsonString==>"+jsonString);
}
}
-------------------------------实例2-------------------------------
--自己写的jsonutils
import java.text.SimpleDateFormat;
import java.util.Date;
import net.sf.ezmorph.object.DateMorpher;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
import net.sf.json.util.JSONUtils;
/*
* 用于 java --> json 时日期格式的转换
*
* JsonConfig jconfig = new JsonConfig();
* jconfig.registerJsonValueProcessor(java.util.Date.class,
* new DateJsonValueProcessor());
*
* json --> java 时日期格式的转换设置
*
* String[] dateFormats = new String[] {"yyyy-MM-dd hh:mm:ss"};
* JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));
*/
public class DateJsonValueProcessor implements JsonValueProcessor {
public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";
private SimpleDateFormat sdf;
public DateJsonValueProcessor() {
JSONUtils.getMorpherRegistry().registerMorpher(
new DateMorpher(new String[] {DEFAULT_DATE_PATTERN}));
sdf = new SimpleDateFormat(DEFAULT_DATE_PATTERN);
}
public DateJsonValueProcessor(String datePattern) {
try {
JSONUtils.getMorpherRegistry().registerMorpher(
new DateMorpher(new String[] {datePattern}));
sdf = new SimpleDateFormat(datePattern);
} catch(RuntimeException e) {
sdf = new SimpleDateFormat(DEFAULT_DATE_PATTERN);
}
}
public Object processArrayValue(Object value, JsonConfig cfg) {
return process(value);
}
public Object processObjectValue(String key, Object value, JsonConfig cfg) {
return process(value);
}
private Object process(Object value) {
if(value == null) {
return "";
}
if(value instanceof Date) {
return sdf.format(value);
}
return value.toString();
}
}
import java.util.ArrayList;
import java.util.Date;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;
public class JsonUtils {
public static JsonConfig getJsonConfig() {
JsonConfig cfg = new JsonConfig();
cfg.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
cfg.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor());
return cfg;
}
public static JsonConfig getJsonConfig(String datePattern) {
JsonConfig cfg = new JsonConfig();
cfg.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
cfg.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor(datePattern));
return cfg;
}
public static Object toBean(JSONObject jsonObject, Class<? extends Object> rootClass) {
JsonConfig cfg = getJsonConfig();
cfg.setRootClass(rootClass);
return JSONObject.toBean(jsonObject,cfg);
}
public static Object toBean(JSONObject jsonObject, Class<? extends Object> rootClass, JsonConfig cfg) {
cfg.setRootClass(rootClass);
return JSONObject.toBean(jsonObject,cfg);
}
public static JSONObject toJsonObject(Object bean) {
JsonConfig cfg = getJsonConfig();
return JSONObject.fromObject(bean, cfg);
}
public static JSONArray toJsonArray(Object list) {
JsonConfig cfg = getJsonConfig();
return JSONArray.fromObject(list, cfg);
}
public static JSONArray toJsonArray(Object list, JsonConfig cfg) {
return JSONArray.fromObject(list, cfg);
}
@SuppressWarnings("unchecked")
public static ArrayList<? extends Object> toList(JSONArray jsonArray, Class<? extends Object> rootClass) {
JsonConfig cfg = getJsonConfig();
cfg.setRootClass(rootClass);
return (ArrayList<? extends Object>) JSONArray.toCollection(jsonArray,cfg);
}
}
public class Card {
private Integer id;
private String cardNo;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCardNo() {
return cardNo;
}
public void setCardNo(String cardNo) {
this.cardNo = cardNo;
}
}
public class Friend {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
import java.util.Date;
import java.util.ArrayList;
import java.util.List;
public class Student {
private Integer id;
private String name;
private Date birthday;
private Card card = new Card();
private List<Friend> friends = new ArrayList<Friend>();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public Card getCard() {
return card;
}
public void setCard(Card card) {
this.card = card;
}
public List<Friend> getFriends() {
return friends;
}
public void setFriends(List<Friend> friends) {
this.friends = friends;
}
}
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
public class JsonStringTest {
public static void main(String[] args) {
Student student = new Student();
student.setId(1);
student.setName("shabao");
student.setBirthday(new Date());
Card card = new Card();
card.setId(1);
card.setCardNo("0020220");
student.setCard(card);
List<Friend> friends = new ArrayList<Friend>();
for (int i = 1; i < 3; i++) {
Friend friend = new Friend();
friend.setName("maoming"+i);
friend.setAge(19+i);
friends.add(friend);
}
student.setFriends(friends);
// It will Javabean convert to String
String jsonStudent = JsonUtils.toJsonObject(student).toString();
System.err.println(jsonStudent);
// It will String convert to Javabean
Map<String, Object> map = new HashMap<String, Object>(); //String-->Property ; Object-->Clss
map.put("card", Card.class);
map.put("friends", Friend.class);
JsonConfig config = JsonUtils.getJsonConfig();
config.setClassMap(map);
Student stu = (Student) JsonUtils.toBean(JSONObject
.fromObject(jsonStudent), Student.class, config);
System.err.println(stu.getBirthday());
Card car = stu.getCard();
System.err.println(car.getCardNo());
List<Friend> frilist = (ArrayList<Friend>)stu.getFriends();
for (Friend friend : frilist) {
System.err.println(friend.getName());
}
}
}
--------- 这种情况传的参数是几个String,并不是某个对象的属性
-------------------- Flex 端 对象转 String(jsonString) -----------------
var objParams1:Object = {"brNameStrFor":"saboo", "brNo":null, "brNameChi":"沙暴"};
var jsonobj1:String = JsonUtils.encode(objParams1); trace("ModuleProxy.findContractorListByCondition1 arrayParams : " + jsonobj1);
ws.send(jsonobj1)
var arrayParams:Array = new Array({"brNameStrFor":"saboo", "brNo":null, "brNameChi":"沙暴"});
var jsonarray:String = JsonUtils.encode(arrayParams);
trace("arrayParams : " + arrayParams);
var arrayParams1:Array = new Array([{"brNameStrFor":"saboo", "brNo":null, "brNameChi":"沙暴"}]);
var jsonarray1:String = JsonUtils.encode(arrayParams1);
trace("arrayParams : " + jsonarray1);
var objParams:Object = new Object();
objParams.brNameStrFor = brNameStrFor;
objParams.brNo = c.brNo;
objParams.brNameChi = c.brNameChi;
var jsonobj:String = JsonUtils.encode(objParams);
trace("arrayParams : " + jsonobj);
-------------------- java 端 String(jsonString) 转 对象 并取得相应的值 -----------------
System.out.println(jsonString); // String jsonString = "{\"brNameStrFor\":\"saboo\", \"brNo\":null, \"brNameChi\":\"沙暴\"}";
JSONObject jsonObject = JSONObject.fromObject(jsonString);
String brName = jsonObject.getString("brNameStrFor").toString();
Integer brNo = jsonObject.getString("brNo").equals("null")?null:Integer.parseInt(jsonObject.getString("brNo").toString());
String brNameChi = jsonObject.getString("brNameChi").toString();
--------- 传某个对象的属性
-- 这个比较简单 有时间写
分享到:
相关推荐
Java JSON API是Java平台上的库,提供了处理JSON的能力,包括解析JSON字符串、生成JSON对象以及进行JSON与Java对象之间的转换。 在Java中,有多种实现JSON API的库,如Jackson、Gson、org.json和json-lib等。本篇...
Java JSON 依赖包是开发Java应用时处理JSON数据的关键组件,尤其在进行Web服务或前后端交互时。JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。...
1. `json-lib-2.3-jdk15.jar`:这可能是JSON库的一个版本,JSON Lib是一个Java实现的JSON处理器,它提供了将Java对象转换为JSON格式和从JSON反序列化回Java对象的功能。版本2.3-jdk15可能表示它兼容Java 1.5版本。 ...
Java JSON的库主要被用来处理JSON(JavaScript Object Notation)数据格式,这是一种轻量级的数据交换格式,广泛用于客户端和服务器之间的数据传输。在Java中,有多种JSON库可供选择,如Jackson、Gson、org.json等。...
Java JSON技术是开发中常用的序列化和反序列化工具,特别是在Web服务和后端开发中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,处理...
JSON-B(Java API for JSON Binding)是Java的一个标准,类似于JAXB,但用于JSON和Java对象之间的自动绑定。它简化了JSON与Java对象的转换过程。 这些jar包包含了处理JSON所需的各种工具和功能,例如: - JSON解析...
Java JSON Jar包是Java开发中处理JSON数据必不可少的工具库,尤其在进行Web服务或前后端交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁和高效而受到广泛欢迎。在Java中,如果...
Java中的json-lib库是处理JSON数据的一个常用工具,它提供了将Java对象转换为JSON字符串以及从JSON字符串反序列化回Java对象的功能。然而,在处理复杂的嵌套数据结构时,如果不小心可能会导致无限循环的问题。 在...
该压缩包包含json使用到的所有jar,jar版本如下: commons-beanutils-1.9.2.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 ...
JsonPath 是java Json库,最新源代码JsonPath 是java Json库,最新源代码JsonPath 是java Json库,最新源代码JsonPath 是java Json库,最新源代码JsonPath 是java Json库,最新源代码JsonPath 是java Json库,最新源...
Java中的`javajson`包,就是为了让Java开发者能够方便地处理JSON数据,将Java对象转换为JSON字符串,或者将JSON字符串解析为Java对象。 在给定的压缩包文件中,我们看到几个关键的库文件,这些是`javajson`包正常...
里面包含所有java 使用json所需要的jar包,包含json-lib-2.4-jdk15,ezmorph-1.0.6,commons-logging-1.1.1,commons-lang-2.5,commons-beanutils-1.8.0,commons-collections-3.2.1
关于java json解析的简单测试,简单示例
Java中的JSON(JavaScript Object Notation)序列化与反序列化是开发过程中常见且重要的操作,主要用于数据交换和存储。JSON是一种轻量级的数据交换格式,它允许我们将Java对象转换为JSON字符串,反之亦然,方便在...
1. **json-lib**: `json-lib-2.2.2-jdk15.jar`是这个集合中的核心包,它是一个Java实现的JSON库,提供了将Java对象转换为JSON格式和从JSON字符串还原Java对象的功能。支持多种Java类型,如JavaBean、Map、List等,...
java json所依赖的所有jar包(json.jar.rar) java json所依赖的所有jar包(json.jar.rar) java json所依赖的所有jar包(json.jar.rar)
本文将详细探讨Java中JSON与XML的互转,以及如何在实际开发中运用这些技术。 标题:“java json xml转换” 描述:“java版的json与xml之间的转换的实例demo” JSON和XML各有优缺点。JSON以其简洁、易于阅读和生成...
java json 工具类java json 工具类 java json 工具类java json 工具类 java json 工具类java json 工具类 java json 工具类java json 工具类
`javajson.zip`这个压缩包可能包含的是与Java处理JSON相关的类库或者示例代码。虽然没有具体文件内容,但我们可以根据常见场景来分析其中可能涵盖的知识点。 1. **JSON基本结构**:JSON由对象和数组构成,对象是...
1. Jackson:Jackson是Java中广泛使用的JSON库,提供了高性能的读写功能,支持多种API,如`ObjectMapper`用于对象与JSON之间的转换,`JsonNode`用于处理JSON树结构。 2. Gson:Google提供的Gson库可以轻松地将Java...