解析出SNMP的名称、oid、描述 代码示例如下
package com.example.demo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import org.springframework.beans.factory.annotation.Value;
import javax.annotation.PostConstruct;
import java.io.*;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
String myJson = readJsonFile("snmp.json");
String a="";
System.out.println("-------------------");
System.out.println("有序遍历结果:");
LinkedHashMap<String, String> jsonMap = JSON.parseObject(myJson, new TypeReference<LinkedHashMap<String, String>>() {
});
for (Map.Entry<String, String> entry : jsonMap.entrySet()) {
// System.out.println(entry.getKey() + ":" + entry.getValue());
JSONObject jsonObjs = JSONObject.parseObject(entry.getValue());
JSONArray jsonArray = (JSONArray) JSONArray.parse(jsonObjs.get("metrics").toString());
//打印JSONArray数组
// System.out.println("jsonArray ="+jsonArray);
for (int i = 0; i <jsonArray.size() ; i++) { //遍历JSONArray数组
JSONObject object1 = JSONArray.parseObject(jsonArray.get(i).toString()); //将JSONArray数组转成JSONObject对象
// System.out.println("object1"+object1); //打印JSONObject对象
a=a+object1.getString("name")+"----"+object1.getString("oid")+",";
System.out.println(object1.getString("name")+"----"+object1.getString("oid")+"----"+object1.getString("help"));
}
}
System.out.println("---------------------------");
System.out.println(a);
}
public static String readJsonFile(String jsonFilePath) {
String jsonStr = "";
try {
File jsonFile = new File(jsonFilePath);
FileReader fileReader = new FileReader(jsonFile);
Reader reader = new InputStreamReader(new FileInputStream(jsonFile), "utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
jsonStr = sb.toString();
return jsonStr;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}