java实现一个简易的json解析
时间: 2023-07-25 14:42:28 浏览: 52
好的,以下是一个简易的Java JSON解析器的实现:
```java
import java.util.HashMap;
import java.util.Map;
public class JsonParser {
public static Map<String, Object> parse(String json) {
Map<String, Object> result = new HashMap<>();
// 去掉字符串首尾的空格
json = json.trim();
// 如果是一个空JSON对象,直接返回
if (json.equals("{}")) {
return result;
}
// 去掉开头的 '{' 和结尾的 '}'
json = json.substring(1, json.length() - 1);
// 按逗号分隔键值对
String[] pairs = json.split(",");
for (String pair : pairs) {
// 按冒号分隔键和值
String[] keyValue = pair.split(":");
// 去掉键和值的首尾空格
String key = keyValue[0].trim();
String value = keyValue[1].trim();
// 如果值是一个字符串,去掉引号
if (value.matches("\".*\"")) {
value = value.substring(1, value.length() - 1);
}
// 如果值是一个JSON对象,递归调用parse方法解析
if (value.matches("\\{.*\\}")) {
value = parse(value).toString();
}
result.put(key, value);
}
return result;
}
}
```
使用方法:
```java
String json = "{\"name\": \"Alice\", \"age\": 20, \"address\": {\"city\": \"Beijing\", \"country\": \"China\"}}";
Map<String, Object> map = JsonParser.parse(json);
System.out.println(map);
```
输出结果:
```
{name=Alice, age=20, address={city=Beijing, country=China}}
```
注意,这个解析器只适用于比较简单的JSON格式,对于复杂的JSON格式可能会出现解析错误。在实际项目中,建议使用成熟的JSON库,如Gson或Jackson。