例1 data={token=eyJhbGciOiJI6AXdVgc3aoqys2NNA,code=200,message=成功}
1.tostring之后拆分成字符串数组。
//data为object类型
String dataToString = dara.toString();
dataToString = dataToString.replace("{", "").replace("}", "");
String[] keyValuePairs = dataToString.split(", ");
String access_token = "";
for (String pair : keyValuePairs) {
String[] keyValue = pair.split("=");
if (keyValue[0].equals("token")) {
token = keyValue[1];
break;
}
}
2.使用 Gson、JsonElement、JsonObject 工具类
String jsonString = data.toString();
Gson gson = new Gson();
JsonElement jsonElement = gson.fromJson(jsonString, JsonElement.class);
JsonObject jsonObject = jsonElement.getAsJsonObject();
String token = jsonObject.get("token").getAsString();
int code = jsonObject.get("code").getAsInt();
String message = jsonObject.get("message").getAsString();
例2 json={"token":"cxh7gOt9h7n1Nsr6VAIARGC","code":7200}
//json为String类型
JSONObject jsonObject = JSONObject.parseObject(json);
String token = jsonObject.getString("token");
Long expiresIn = jsonObject.getLong("code");
特殊的案例:json样式中含有json样式
{
"touser":"open_id",
"template_id":"template_ids",
"url":"http://weixin.qq.com/download",
"data":{
"thing1":{
"value":"参数1"
},
"thing2": {
"value":"参数2"
},
"thing3": {
"value":"参数3"
},
"thing4": {
"value":"参数4"
}
}
}
处理方式是使用com.alibaba.fastjson.JSONObject来逐层解析
String jsonString= "{\n" +
" \"touser\":\"open_id\",\n" +
" \"template_id\":\"template_ids\",\n" +
" \"url\":\"http://weixin.qq.com/download\",\n" +
" \"data\":{\n" +
" \"thing1\":{\n" +
" \"value\":\"参数1\"\n" +
" },\n" +
" \"thing2\": {\n" +
" \"value\":\"参数2\"\n" +
" },\n" +
" \"thing3\": {\n" +
" \"value\":\"参数3\"\n" +
" },\n" +
" \"thing4\": {\n" +
" \"value\":\"参数4\"\n" +
" }\n" +
" }\n" +
"}";
JSONObject jsonObject = JSONObject.parseObject(jsonString);
String touser = jsonObject.getString("touser");
String templateId = jsonObject.getString("template_id");
String url = jsonObject.getString("url");
JSONObject dataObject = jsonObject.getJSONObject("data");
String thing1 = dataObject.getJSONObject("thing1").getString("value");
String thing2 = dataObject.getJSONObject("thing2").getString("value");
String thing3 = dataObject.getJSONObject("thing3").getString("value");
String thing4 = dataObject.getJSONObject("thing4").getString("value");
System.out.println("touser: " + touser);
System.out.println("template_id: " + templateId);
System.out.println("url: " + url);
System.out.println("thing1: " + thing1);
System.out.println("thing2: " + thing2);
System.out.println("thing3: " + thing3);
System.out.println("thing4: " + thing4);