java处理json数据格式

首先下载json-simple-1.1.jar包 

JSONObject是继承Map的,而JSONArray是继承List的,所以你可以用Map和List的标准方式来使用JSONObject和JSONArray。

 

而JSONValue则可以使用数组也可以用对象。


主要的类为:JSONArray,JSONObject,JSONValue 

简单的JSON操作代码示例:

public static void testJSON() {  
        String jsString = "[\"129653\",\"129664\",\"129660\",\"129665\"]";  
        //解析json数组字符串  
        JSONArray ja = (JSONArray)JSONValue.parse(jsString);  
        for(int i = 0; i < ja.size(); i++) {  
            System.out.println(ja.get(i) + ":::");  
        }  
        //生成JSONArray数组  
        JSONArray new_ja = new JSONArray();  
        new_ja.add("aaaa");  
        new_ja.add("bbbb");  
        new_ja.add("cccc");  
        System.out.println(new_ja.toJSONString());  
          
        //解析json字符  
        String objString = "{\"aa\":1,\"cc\":2,\"bb\":3}";  
        JSONObject jo = (JSONObject)JSONValue.parse(objString);  
        Iterator iter = jo.keySet().iterator();  
        while(iter.hasNext()) {  
            String key = iter.next().toString();  
            System.out.println("[key=" + key + ", val=" + jo.get(key) + "]");  
        }  
          
        //生成JSONObject对象  
        JSONObject new_jo = new JSONObject();  
        new_jo.put("bbb", "ddd");  
        new_jo.put("bbb0", 1);  
        new_jo.put("bbb1", 11);  
        new_jo.put("bbb12", "asflex");  
        System.out.println(new_jo.toJSONString());  
    }  

复杂格式的JSON操作如下:

将JSON数据写入文件

import java.io.FileWriter;
import java.io.IOException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
 
public class JsonSimpleExample {
     public static void main(String[] args) {
 
	JSONObject obj = new JSONObject();
	obj.put("name", "mkyong.com");
	obj.put("age", new Integer(100));
 
	JSONArray list = new JSONArray();
	list.add("msg 1");
	list.add("msg 2");
	list.add("msg 3");
 
	obj.put("messages", list);
 
	try {
 
		FileWriter file = new FileWriter("c:\\test.json");
		file.write(obj.toJSONString());
		file.flush();
		file.close();
 
	} catch (IOException e) {
		e.printStackTrace();
	}
 
	System.out.print(obj);
 
     }
 
}

输出结果如下

{
	"age":100,
	"name":"mkyong.com",
	"messages":["msg 1","msg 2","msg 3"]
}
读出JSON文件

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
 
public class JsonSimpleExample {
     public static void main(String[] args) {
 
	JSONParser parser = new JSONParser();
 
	try {
 
		Object obj = parser.parse(new FileReader("c:\\test.json"));
 
		JSONObject jsonObject = (JSONObject) obj;
 
		String name = (String) jsonObject.get("name");
		System.out.println(name);
 
		long age = (Long) jsonObject.get("age");
		System.out.println(age);
 
		// loop array
		JSONArray msg = (JSONArray) jsonObject.get("messages");
		Iterator<String> iterator = msg.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());
		}
 
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	} catch (ParseException e) {
		e.printStackTrace();
	}
 
     }
 
}

输出结果如下

mkyong.com
100
msg 1
msg 2
msg 3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值