javajsonobject java操作json字符串转对象数组,方法详解
详细讲解Java使用JSONObject操作json实例解析的完整攻略。
什么是JSONObject
在Java中操作json数据需要用到第三方库,其中一个流行的库是JSON-java。而JSONObject就是JSON-java库中的一个类,用于操作Json格式的数据。
导入JSON-java库
在使用JSON-java库前,需要先将其导入到项目中。可以在 GitHub官网 下载JSON-java库的jar包,并添加到项目classpath下。
JSONObject基本操作
1. 创建JSONObject
可以通过不同的方式创建一个JSONObject对象。例如,通过读取一个json字符串或者通过手动创建属性来以不同的方式创建JSONObject对象。
通过json字符串创建
String jsonStr = "{ \"name\":\"张三\", \"age\":21, \"country\":\"中国\" }";
JSONObject jsonObject = new JSONObject(jsonStr);
通过属性手动创建
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "张三");
jsonObject.put("age", 21);
jsonObject.put("country", "中国");
2. 获取JSONObject对象的值
每个JSONObject对象都可以包含多个属性,可以通过键来获取对应的值,也可以通过类型来获取值。
获取值
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
String country = jsonObject.getString("country");
判断JSONObject对象的类型
if (jsonObject.isNull("name")) {
// 属性值为null
}
if (jsonObject.has("name")) {
// JSONObject对象包含key为"name"的属性
}
3. 处理JSONObject对象的属性
删除属性
jsonObject.remove("age");
重命名属性
jsonObject.put("newName", jsonObject.remove("name"));
遍历JSONObject对象
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()) {
String key = keys.next();
Object value = jsonObject.get(key);
// 处理key和value
}
示例说明
下面是两个针对特定场景的示例说明:
示例一:获取Json格式数据中的数据源信息
假设我们有一条json格式数据
{
"name": "Product 1",
"price": 55,
"origin": {
"country": "China",
"province": "Jiangsu",
"city": "Suzhou"
}
}
我们需要从这条json数据中获取商品的产地信息。可以使用如下代码:
JSONObject jsonObject = new JSONObject(jsonStr);
JSONObject origin = jsonObject.getJSONObject("origin");
String country = origin.getString("country");
String province = origin.getString("province");
String city = origin.getString("city");
示例二:创建Json格式数据
假设我们需要生成这样一条json格式字符串:
{
"name": "Product 1",
"price": 55,
"origin": {
"country": "China",
"province": "Jiangsu",
"city": "Suzhou"
}
}
可以使用如下代码:
JSONObject origin = new JSONObject();
origin.put("country", "China");
origin.put("province", "Jiangsu");
origin.put("city", "Suzhou");
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "Product 1");
jsonObject.put("price", 55);
jsonObject.put("origin", origin);
String jsonStr = jsonObject.toString();
以上就是Java使用JSONObject操作json实例解析的完整攻略。