怎么将JSONArray转成List<String>,不要使用Gson库
时间: 2024-05-05 16:18:57 浏览: 136
您好!可以使用 Java 的原生方法来完成 JSONArray 转 List<String> 的操作。具体实现如下:
```
JSONArray jsonArray = new JSONArray("[\"string1\",\"string2\",\"string3\"]");
List<String> stringList = new ArrayList<>(jsonArray.length());
for (int i = 0; i < jsonArray.length(); i++) {
stringList.add(jsonArray.getString(i));
}
```
以上代码中,首先将 JSONArray 的字符串形式进行解析,然后通过 for 循环遍历每一个元素,将其作为 String 类型添加到 List 中。
希望我的回答对您有所帮助!
相关问题
JSONArray转成List<String>
可以使用Gson库来进行JSONArray与List<String>之间的转换。具体实现如下:
1.导入Gson库
在您的项目中添加以下依赖项:
```
//Gradle
implementation 'com.google.code.gson:gson:2.8.7'
//Maven
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.7</version>
</dependency>
```
2.将JSONArray转换为String数组
您可以使用Gson库中的fromJson()方法将JSONArray转换为String数组,然后将String数组转换为List<String>。
```
JSONArray jsonArray = new JSONArray("[\"apple\", \"banana\", \"cherry\"]");
Gson gson = new Gson();
String[] stringArray = gson.fromJson(jsonArray.toString(), String[].class);
List<String> stringList = Arrays.asList(stringArray);
```
在上面的示例中,我们使用了JSONArray类来创建一个包含三个字符串的JSON数组。然后,我们使用Gson库中的fromJson()方法将JSONArray转换为字符串数组。最后,我们使用Arrays.asList()方法将字符串数组转换为List<String>。
3.测试
您可以使用以下代码行测试转换是否成功:
```
System.out.println(stringList);
```
如果转换成功,列表将打印为:
```
[apple, banana, cherry]
```
jsonarray转list<Map>
可以使用Java中的`Gson`库将`JSONArray`转换为`List<Map>`。首先,你需要导入`Gson`库,然后按照以下步骤进行转换:
1. 将`JSONArray`转换为字符串形式。
2. 使用`Gson`库将字符串转换为`List<Map>`。
以下是示例代码:
```java
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.json.JSONArray;
public class JsonArrayToListMapExample {
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray("[{\"name\":\"John\",\"age\":30},{\"name\":\"Jane\",\"age\":25}]");
String jsonString = jsonArray.toString();
Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<List<Map<String, Object>>>() {}.getType();
List<Map<String, Object>> list = gson.fromJson(jsonString, type);
// 打印转换后的列表
for (Map<String, Object> map : list) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
System.out.println();
}
}
}
```
这段代码会将`JSONArray` `[{"name":"John","age":30},{"name":"Jane","age":25}]` 转换为一个包含两个`Map`对象的`List`,每个对象表示一个JSON对象。你可以根据需要修改JSON字符串和输出代码。
记住,在使用此代码之前,你需要先导入`Gson`库。
阅读全文