Java读写json
实例用的json文件
{"persons":[{"name":"Assad","home":"Guangzhou"},{"name":"John","home":"Shanghai"}]}
1、读取JSON对象
public static void read(){
//从.json文件读取json字符串
StringBuilder jsonStr = new StringBuilder();
try{
BufferedReader reader = new BufferedReader(new FileReader(new File("test_create.json"))); //或者使用Scanner
String temp = "";
while((temp = reader.readLine())!= null)
jsonStr.append(temp);
reader.close();
}catch (IOException ex){
ex.printStackTrace();
}
//将json字符串转化为JSON对象,并读取内容
try{
JSONObject json = new JSONObject(jsonStr.toString());
JSONArray jsonMembers = json.getJSONArray("persons");
for(int i=0;i<jsonMembers.length();i++){
JSONObject person = (JSONObject)jsonMembers.get(i);
String name = (String)person.get("name"); //获取JSON对象的键值对
String home = (String)person.get("home");
System.out.println("name:"+name+"\nhome:"+home);
}
}catch(JSONException ex){
ex.printStackTrace();
}
}
2、修改JSON对象
public static void updateAndSave(){
try{
JSONObject json = new JSONObject("{\"persons\":[{\"name\":\"Assad\",\"home\":\"Guangzhou\"},{\"name\":\"John\",\"home\":\"Shanghai\"}]}");
//增加JSON对象键值对
JSONArray jsonMembers = json.getJSONArray("persons");
JSONObject member3 = new JSONObject();
member3.put("name","Time");
member3.put("home","Beijing");
jsonMembers.put(member3);
//删除JSON对象键值对
JSONObject member1 = (JSONObject) jsonMembers.get(0); //删除第一个成员的name字段
member1.remove("name");
System.out.println(json.toString()); //show
}catch(JSONException ex){
ex.printStackTrace();
}
}
3、创建JSON对象并保存为.json文件
public static void create(){
//创建JSON对象
//①直接构造JSON对象
JSONObject json = new JSONObject();
try {
JSONArray jsonMembers = new JSONArray(); //创建json数组
JSONObject member1 = new JSONObject(); //创建空json对象
member1.put("name","Assad"); //向json对象中放置键值对
member1.put("home","Guangzhou");
JSONObject member2 = new JSONObject();
member2.put("name","John");
member2.put("home","Shanghai");
jsonMembers.put(member1);
jsonMembers.put(member2);
json.put("persons",jsonMembers);
}catch(JSONException ex){
ex.printStackTrace();
}
//②直接将Java对象转化为JSON对象
Perosns persons= new Persons();
JSONObject json = JSONObject.formObject(persons);*/
//写入文件:将JSON对象转化为字符串后写入文件
String jsonStr = json.toString(); //将JSON对象转化为字符串
try{
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(new File("test_create.json"))));
writer.write(jsonStr);
writer.close();
}catch(IOException ex){
ex.printStackTrace();
}
}