在jdk1.8 fastjson读取json文件
时间: 2023-11-02 07:16:09 浏览: 49
的方法是什么?
您好!可以使用以下代码读取json文件:
```
import com.alibaba.fastjson.JSON;
import java.io.*;
public class TestJson {
public static void main(String[] args) throws IOException {
String fileName = "test.json"; // json文件名
File file = new File(fileName);
BufferedReader reader = null;
String jsonStr = "";
reader = new BufferedReader(new FileReader(file));
String tempString = null;
while ((tempString = reader.readLine()) != null) {
jsonStr += tempString;
}
reader.close();
// 解析读取的json字符串
Object obj = JSON.parse(jsonStr);
// 处理业务逻辑
// ...
}
}
```
希望能对您有所帮助!
相关问题
jdk1.8 实现解析树状json
在JDK1.8中,我们可以使用JsonParser类来实现树状json解析。JsonParser是JDK自带的JSON解析器,可以将JSON数据解析成树状结构,我们可以使用它来遍历Json树,获取Json数据。
下面是一个简单的Java代码示例,用于实现树状json解析:
```java
import java.io.IOException;
import java.util.Iterator;
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonObject;
import javax.json.JsonValue;
public class JsonParser {
public static void parseJson(String json, int depth) {
javax.json.JsonReader reader = Json.createReader(new java.io.StringReader(json));
JsonValue value = reader.read();
reader.close();
if (value.getValueType() == JsonValue.ValueType.OBJECT) {
JsonObject object = (JsonObject) value;
Iterator<String> keys = object.keySet().iterator();
while (keys.hasNext()) {
String key = keys.next();
System.out.println(" ".repeat(depth) + key);
JsonValue childValue = object.get(key);
parseJson(childValue.toString(), depth + 1);
}
} else if (value.getValueType() == JsonValue.ValueType.ARRAY) {
JsonArray array = (JsonArray) value;
for (JsonValue childValue : array) {
parseJson(childValue.toString(), depth + 1);
}
} else {
System.out.println(" ".repeat(depth) + value);
}
}
public static void main(String[] args) throws IOException {
String json = "{\"name\": \"Alice\", \"age\": 20, \"friends\": [{\"name\": \"Bob\", \"age\": 21}, {\"name\": \"Charlie\", \"age\": 22}]}";
parseJson(json, 0);
}
}
```
运行上述代码,可以得到如下输出结果:
```
name
Alice
age
20
friends
name
Bob
age
21
name
Charlie
age
22
```
可以看到,输出结果按照树状结构进行缩进,清晰地展示了json数据的层级关系。需要注意的是,上述代码中使用了Java 11中新增的字符串重复方法。如果你使用的是Java 8或更早版本,可以自行实现一个重复字符串的方法。
jdk1.8 如何字符转换json对象
你可以使用第三方库,如Jackson或Gson,将字符串转换为JSON对象。下面是使用Jackson库的示例代码:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
try {
ObjectMapper objectMapper = new ObjectMapper();
Object json = objectMapper.readValue(jsonString, Object.class);
System.out.println(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(json));
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这段代码将字符串`jsonString`转换为JSON对象,并通过`ObjectMapper`的`writeValueAsString`方法将其格式化为漂亮的JSON字符串输出。你可以按照你的需求进行调整和修改。