`
saboo
  • 浏览: 72225 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java json

阅读更多

 

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();

 

 

--------- 传某个对象的属性

-- 这个比较简单 有时间写

0
5
分享到:
评论

相关推荐

    java json api,json api

    Java JSON API是Java平台上的库,提供了处理JSON的能力,包括解析JSON字符串、生成JSON对象以及进行JSON与Java对象之间的转换。 在Java中,有多种实现JSON API的库,如Jackson、Gson、org.json和json-lib等。本篇...

    java json依赖包(完整直接可用版)

    Java JSON 依赖包是开发Java应用时处理JSON数据的关键组件,尤其在进行Web服务或前后端交互时。JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。...

    java json工具包

    1. `json-lib-2.3-jdk15.jar`:这可能是JSON库的一个版本,JSON Lib是一个Java实现的JSON处理器,它提供了将Java对象转换为JSON格式和从JSON反序列化回Java对象的功能。版本2.3-jdk15可能表示它兼容Java 1.5版本。 ...

    javajson的lib

    Java JSON的库主要被用来处理JSON(JavaScript Object Notation)数据格式,这是一种轻量级的数据交换格式,广泛用于客户端和服务器之间的数据传输。在Java中,有多种JSON库可供选择,如Jackson、Gson、org.json等。...

    java json 所有jar包

    Java JSON技术是开发中常用的序列化和反序列化工具,特别是在Web服务和后端开发中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,处理...

    java json 相关的所有jar包

    JSON-B(Java API for JSON Binding)是Java的一个标准,类似于JAXB,但用于JSON和Java对象之间的自动绑定。它简化了JSON与Java对象的转换过程。 这些jar包包含了处理JSON所需的各种工具和功能,例如: - JSON解析...

    Java json jar包 包括全部6个包 可以直接使用

    Java JSON Jar包是Java开发中处理JSON数据必不可少的工具库,尤其在进行Web服务或前后端交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁和高效而受到广泛欢迎。在Java中,如果...

    java json-lib解决无循环的探索例子

    Java中的json-lib库是处理JSON数据的一个常用工具,它提供了将Java对象转换为JSON字符串以及从JSON字符串反序列化回Java对象的功能。然而,在处理复杂的嵌套数据结构时,如果不小心可能会导致无限循环的问题。 在...

    java json jar包合集

    该压缩包包含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库,最新源代码JsonPath 是java Json库,最新源...

    javajson包

    Java中的`javajson`包,就是为了让Java开发者能够方便地处理JSON数据,将Java对象转换为JSON字符串,或者将JSON字符串解析为Java对象。 在给定的压缩包文件中,我们看到几个关键的库文件,这些是`javajson`包正常...

    java json所需要的jar包

    里面包含所有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解析的简单测试,简单示例

    Java Json序列化与反序列化

    Java中的JSON(JavaScript Object Notation)序列化与反序列化是开发过程中常见且重要的操作,主要用于数据交换和存储。JSON是一种轻量级的数据交换格式,它允许我们将Java对象转换为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所依赖的所有jar包(json.jar.rar)

    java json xml转换

    本文将详细探讨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 工具类 java json 工具类java json 工具类

    javajson.zip

    `javajson.zip`这个压缩包可能包含的是与Java处理JSON相关的类库或者示例代码。虽然没有具体文件内容,但我们可以根据常见场景来分析其中可能涵盖的知识点。 1. **JSON基本结构**:JSON由对象和数组构成,对象是...

    java json文档和示例

    1. Jackson:Jackson是Java中广泛使用的JSON库,提供了高性能的读写功能,支持多种API,如`ObjectMapper`用于对象与JSON之间的转换,`JsonNode`用于处理JSON树结构。 2. Gson:Google提供的Gson库可以轻松地将Java...

Global site tag (gtag.js) - Google Analytics