最近在做一个数据导入功能,格式是json,csv,现在呢是把json的写完了,简单例子我先记录一下
对了,这个是从mysql中导出来的标准json格式,示例如下
{
"RECORDS": [
{
"id": "1",
"NAME": "2",
"sex": "3",
"ewqsss": "4",
"age": "5",
"hahah": "6"
},
{
"id": "7",
"NAME": "8",
"sex": "9",
"ewqsss": "11",
"age": "12",
"hahah": "13"
}
]
}
代码解析:
@Test
public void readJsonFile() {
String jsonStr = "";
try {
//读取json文件
File jsonFile = new File("C:\\Users\\lenovo\\Desktop\\person.json");
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();
System.out.println(jsonStr);
//将字符串转为JSON对象
JSONObject jobj = JSON.parseObject(jsonStr);
//在从对象拿出数据,是一个数组形式
JSONArray records = jobj.getJSONArray("RECORDS");
for (Object record : records) {
//整行数据提取
System.out.println(record.toString());
}
for(int i=0;i<records.size();i++){
//单行单个的根据key来拿对应的vlue
JSONObject jsonItem=(JSONObject)records.get(i);
String vluee =jsonItem.getString("id");
System.out.println(vluee);
}
} catch (IOException e) {
e.printStackTrace();
}
}
控制台显示
代码呢就这么简单,正常来说解析完了后就开始做对应的业务处理;如有问题请留言。