Gson将String转为二维数组
时间: 2023-12-14 14:36:30 浏览: 108
假设你有这样一个JSON字符串:
```
String json = "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]";
```
你可以使用Gson将其解析成一个二维数组:
```
Gson gson = new Gson();
int[][] array = gson.fromJson(json, int[][].class);
```
这将返回一个二维数组,其中包含了JSON字符串中的所有值。请注意,这将抛出`JsonSyntaxException`异常,如果JSON字符串不符合所需的格式。
相关问题
Gson将String转为二维数组并循环判断第一列为0,将第二列乘100再放入二维数组
假设你的字符串是以下格式的二维数组:
```
String json = "[[1,2],[0,4],[1,3],[0,6]]";
```
你可以使用 Gson 将其转换为一个 `JsonElement` 对象,然后再通过 `Gson` 对象将其转换为一个二维数组:
```java
Gson gson = new Gson();
JsonElement element = gson.fromJson(json, JsonElement.class);
if (element.isJsonArray()) {
JsonArray jsonArray = element.getAsJsonArray();
int[][] array = new int[jsonArray.size()][2];
for (int i = 0; i < jsonArray.size(); i++) {
JsonArray subArray = jsonArray.get(i).getAsJsonArray();
array[i][0] = subArray.get(0).getAsInt();
array[i][1] = subArray.get(1).getAsInt();
if (array[i][0] == 0) {
array[i][1] *= 100;
}
}
}
```
这里使用了 `JsonElement` 对象来接受转换后的结果,因为我们不确定它是否是一个数组。如果是一个数组,我们就可以强制转换为 `JsonArray` 对象,并对其中的每个子数组进行处理。最后,我们将每个子数组的第一列与 `0` 进行比较,如果相等,我们就将第二列乘以 `100`。
java使用gson把json转为数组代码示例
以下是Java使用Gson将JSON转换为数组的代码示例:
1. 导入Gson库
```java
import com.google.gson.Gson;
import com.google.gson.JsonArray;
```
2. 定义JSON字符串和Gson对象
```java
String jsonStr = "[{\"name\": \"John\", \"age\": 30 }, {\"name\": \"Jane\", \"age\": 25 }]";
Gson gson = new Gson();
```
3. 使用Gson将JSON字符串转换为JsonArray对象
```java
JsonArray jsonArray = gson.fromJson(jsonStr, JsonArray.class);
```
4. 遍历JsonArray对象并访问其中的元素
```java
for(int i=0;i<jsonArray.size();i++){
System.out.println("Name: " + jsonArray.get(i).getAsJsonObject().get("name").getAsString());
System.out.println("Age: " + jsonArray.get(i).getAsJsonObject().get("age").getAsInt());
}
```
输出结果如下:
```
Name: John
Age: 30
Name: Jane
Age: 25
```
阅读全文