要解析的文本:
{
name:"1234567",
obj:
{
first:"123456",
second:"jjjjjj"
},
arr:
[
1,2,3,4,5,6,7,7,8,9
]
}
一级属性解析的代码:
try (BufferedReader br = new BufferedReader(new FileReader("demo.json"));) {
String all = "";
String s = "";
while ((s = br.readLine()) != null) {
all += s;
}
/**
* 去掉字符串的空白字符
*/
all = all.replaceAll("\\s", "");
System.out.println("all_1 := "+all);
/**
* 去掉首尾的{}
*/
all = all.replaceAll("^\\{|\\}$", "");
System.out.println("all_2 := "+all);
/**
* 从字符串中提取数据
*/
Pattern p = Pattern.compile("\\w+:(\"\\w+\"|\\{\\S+\\}|\\[\\S+\\])");
Matcher m = p.matcher(all);
while(m.find()){
System.out.println("pattern := "+m.group());
}
} catch (Exception e) {
e.printStackTrace();
}
输出结果:
all_1 := {name:"1234567",obj:{first:"123456",second:"jjjjjj"},arr:[1,2,3,4,5,6,7,7,8,9]}
all_2 := name:"1234567",obj:{first:"123456",second:"jjjjjj"},arr:[1,2,3,4,5,6,7,7,8,9]
pattern := name:"1234567"
pattern := obj:{first:"123456",second:"jjjjjj"}
pattern := arr:[1,2,3,4,5,6,7,7,8,9]