Java JSON数据处理

时间:2023-11-22 10:59:08

比方说要处理这么一段数据。

{"data":[{"salt":"","plaintext":"xiaoxu","time":"1507462954","hash":"0b4fd093bd6a97154001542e682a9289"}]}

在{}里面叫做JSONObject,而中括号里面的是JSONArray。

一段JSON数据,当然了,把它当做一个字符串各种split当然可以了。但是有处理JSON的工具嘛反正,还是用一下。

1. 用GSON这个工具(JSON.jar)。

import com.google.gson.*;
    hashRes="{"data":[{"salt":"","plaintext":"xiaoxu","time":"1507462954","hash":"0b4fd093bd6a97154001542e682a9289"}]}";   
    Gson gson = new Gson();
HashMap<String, Object> hashMap = new HashMap<String, Object>();
hashMap = gson.fromJson(hashesRes, hashMap.getClass());
Object object = hashMap.get("data");
String jsonArray = object.toString();
String[] strings = jsonArray.split("\\,"); System.out.println(strings[0].substring(2) + strings[1]);

2. 用fastjson将JSON转为map。

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
//将json转为map
hashRes="{"data":[{"salt":"","plaintext":"xiaoxu","time":"1507462954","hash":"0b4fd093bd6a97154001542e682a9289"}]}";
Map<String, Object> map = null;
map = (Map<String, Object>) JSONObject.parse(hashesRes);

另外加一种常见情形:将JSON数据转换为一个字典方便post传输。(直接用的正则)

    public static String JSON2POST(JSONObject JSONStatus){
String data2POST = JSONStatus.toJSONString().replaceAll("[{}\"]", "");
data2POST = data2POST.replace(':', '=');
return data2POST = data2POST.replace(',', '&');
}