JsonReader
时间: 2023-07-30 12:12:51 浏览: 147
`JsonReader`是Google Gson库中的一个类,它提供了一种将JSON数据流转换为Java对象的方法。下面是一个使用`JsonReader`类的示例代码:
```java
import java.io.IOException;
import java.io.StringReader;
import com.google.gson.stream.JsonReader;
public class JsonReaderExample {
public static void main(String[] args) {
String json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
try (JsonReader reader = new JsonReader(new StringReader(json))) {
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("name")) {
System.out.println("Name: " + reader.nextString());
} else if (name.equals("age")) {
System.out.println("Age: " + reader.nextInt());
} else if (name.equals("city")) {
System.out.println("City: " + reader.nextString());
} else {
reader.skipValue();
}
}
reader.endObject();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,我们首先定义了一个JSON字符串。然后,我们使用`StringReader`将JSON字符串转换为字符流,并将其传递给`JsonReader`的构造函数。接下来,我们使用`beginObject`和`endObject`方法包裹一个`while`循环,循环中我们使用`nextName`方法获取JSON属性的名称,然后根据属性名的不同,使用不同的`nextXxx`方法获取属性值,并输出到控制台上。
需要注意的是,`JsonReader`是一个可关闭的资源,因此我们需要在try-with-resources语句中使用它,以确保它在使用完后被关闭。除此之外,我们还需要处理`IOException`异常。
阅读全文