jsonarray 怎么用
时间: 2023-07-03 22:32:27 浏览: 78
JSONArray 是一个Java类,用于处理JSON格式的数组数据。下面是一个简单的使用例子:
首先需要导入JSON库的jar包,比如常用的org.json包。
然后创建JSONArray对象:
```java
JSONArray jsonArray = new JSONArray();
```
向JSONArray中添加元素:
```java
jsonArray.put("element1");
jsonArray.put("element2");
```
JSONArray也可以包含其他的JSONArray或JSONObject:
```java
JSONArray jsonArray = new JSONArray();
jsonArray.put(new JSONObject("{\"name\":\"John\", \"age\":30}"));
```
获取JSONArray中的元素:
```java
String element1 = jsonArray.getString(0);
JSONObject jsonObject = jsonArray.getJSONObject(0);
```
这些只是JSONArray的一些基本用法,具体使用还需要根据具体情况进行调整。
相关问题
java JSONArray 使用
JSONArray 是 Java 中的一个类,用于处理 JSON 数组。以下是使用 JSONArray 的一些示例:
1. 创建一个空的 JSONArray 对象
```java
JSONArray jsonArray = new JSONArray();
```
2. 创建一个包含元素的 JSONArray 对象
```java
JSONArray jsonArray = new JSONArray();
jsonArray.put("element1");
jsonArray.put("element2");
jsonArray.put("element3");
```
3. 从字符串解析 JSON 数组
```java
String jsonStr = "[\"element1\", \"element2\", \"element3\"]";
JSONArray jsonArray = new JSONArray(jsonStr);
```
4. 从 Java List 转换为 JSONArray
```java
List<String> list = new ArrayList<>();
list.add("element1");
list.add("element2");
JSONArray jsonArray = new JSONArray(list);
```
5. 获取 JSONArray 中的元素
```java
JSONArray jsonArray = new JSONArray();
jsonArray.put("element1");
jsonArray.put("element2");
jsonArray.put("element3");
String element1 = jsonArray.getString(0); // 获取第一个元素,值为 "element1"
String element2 = jsonArray.getString(1); // 获取第二个元素,值为 "element2"
String element3 = jsonArray.getString(2); // 获取第三个元素,值为 "element3"
```
以上是一些 JSONArray 的使用示例,希望对你有所帮助。
JSONArray用stream
`JSONArray` 是 `fastjson` 库中提供的一个类,它实现了 `List` 接口,用于存储多个 `JSONObject` 或 `JSONArray` 对象。`JSONArray` 没有直接提供 `stream()` 方法,但您可以通过将其转换为 `List` 类型,再通过 `stream()` 方法来实现流操作。
例如,假设您有一个 `JSONArray` 对象:
```
JSONArray jsonArray = new JSONArray();
jsonArray.add(new JSONObject().fluentPut("name", "Alice").fluentPut("age", 18));
jsonArray.add(new JSONObject().fluentPut("name", "Bob").fluentPut("age", 20));
jsonArray.add(new JSONObject().fluentPut("name", "Charlie").fluentPut("age", 22));
```
如果您想要使用 `stream()` 方法来对该 `JSONArray` 进行流操作,可以先将其转换为 `List` 类型,再使用 `stream()` 方法,例如:
```
List<JSONObject> jsonObjectList = jsonArray.stream()
.map(obj -> (JSONObject)obj)
.collect(Collectors.toList());
jsonObjectList.stream()
.filter(json -> json.getInteger("age") > 18)
.forEach(json -> {
System.out.println(json.getString("name") + " is older than 18");
});
```
在这个例子中,我们首先将 `JSONArray` 转换为 `List` 类型,并使用 `map()` 方法将每个元素强制转换为 `JSONObject` 类型。然后我们使用 `stream()` 方法对 `List` 进行流操作,通过 `filter()` 方法过滤 `age` 属性大于 18 的元素,最后在 `forEach()` 中输出符合条件的元素的 `name` 属性值。
请注意在使用 `map()` 方法时需要进行强制类型转换,否则会出现类型转换异常。