https://blog.csdn.net/howard2005/article/details/100882963
网址下载
学会如何在Java程序里解析json。
1、创建Java项目JsonDemo
2、在项目根目录创建lib,在里面添加解析json所需的jar包
3、在src里创建net.dyc.json包,在里面创建ParseJsonString01类
package net.dyc.json;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.function.Consumer;
import java.util.jar.JarException;
/**
* 功能:将json字符串解析为json对象
* 作者:邓益春
* 日期:2019年11月4日
*/
public class ParseJsonString01 {
public static void main(String[] args) {
// 定义一个json字符串
String strJson = "{'id': 1, 'name': 'howard', 'age': 20}";
try {
// 基于json字符串创建json对象
JSONObject jsonObject = new JSONObject(strJson);
// 打印输出json对象
System.out.println(jsonObject);
// 逐个访问json对象属性及其值
System.out.println("id: " + jsonObject.get("id"));
System.out.println("name: " + jsonObject.get("name"));
System.out.println("age: " + jsonObject.get("age"));
// 遍历json对象属性
jsonObject.keys().forEachRemaining(new Consumer() {
@Override
public void accept(Object key) {
try {
System.out.println(key + ": " + jsonObject.get(String.valueOf(key)));
} catch (JSONException e) {
e.printStackTrace();
}
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
}
在net.dyc.json里创建ParseJsonString02类
package net.dyc.json;
import netscape.javascript.JSException;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.function.Consumer;
/**
* 功能:将json字符串解析为json对象
* 作者:邓益春
* 日期:2019年11月4日
*/
public class ParseJsonString02 {
public static void main(String[] args) {
// 定义一个json字符串
String strJson = "{'id': 1, 'name': {'first name': 'Smith', 'last name': 'Brian'}, 'age': 20}";
try {
// 基于json字符串创建json对象
JSONObject jsonObject = new JSONObject(strJson);
// 打印输出json对象
System.out.println(jsonObject);
// 遍历json对象属性及其值
jsonObject.keys().forEachRemaining(new Consumer() {
@Override
public void accept(Object key) {
try {
System.out.println(key + ": " + jsonObject.get(String.valueOf(key)));
} catch (JSONException e) {
e.printStackTrace();
}
}
});
// 获取name属性值 - json对象
JSONObject name = (JSONObject) jsonObject.get("name");
// 按键取值
System.out.println("first name: " + name.get("first name"));
System.out.println("last name: " + name.get("last name"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
在net.dyc.json里创建ParseJsonString03类
package net.dyc.json;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.function.Consumer;
/**
* 功能:将json字符串解析为json对象
* 作者:邓益春
* 日期:2019年11月4日
*/
public class ParseJsonString03 {
public static void main(String[] args) {
// 定义json数组字符串
String strJsonArr = "[{'id': 1, 'name': 'howard', 'age': 20}," +
"{'id': 2, 'name': 'alice', 'age': 18}," +
"{'id': 3, 'name': 'smith', 'age': 19}]";
try {
// 基于json数组字符串创建json数组
JSONArray jsonArray = new JSONArray(strJsonArr);
// 遍历json数组
for (int i = 0; i < jsonArray.length(); i++) {
// 获取json对象
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
// 遍历json对象属性及其值
jsonObject.keys().forEachRemaining(new Consumer() {
@Override
public void accept(Object key) {
try {
System.out.println(key + ": " + jsonObject.get(String.valueOf(key)));
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}