json格式:
格式1:value可以为任意值
{"key":value,"key1":value1}
格式2:e可以为任意值
[e1,e2]
jsonlib工具类,可以使对象转换成json数据
1.导入jar包
2.使用api
JSONArray.fromObject(对象) 数组和list
JSONObject.fromObject(对象) bean和map
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import com.pojo.Province;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Demo {
@Test
//数组
public void f1(){
String[] arr={"aaa","bb","cc"};
JSONArray json = JSONArray.fromObject(arr);
System.out.println(json);
}
@Test
//list
public void f2(){
List<String> list=new ArrayList<>();
list.add("11");
list.add("22");
list.add("33");
JSONArray json = JSONArray.fromObject(list);
System.out.println(json);
}
@Test
//bean
public void f3(){
Province pro = new Province();
pro.setName("北京");
pro.setProvinceid(1);
JSONObject json = JSONObject.fromObject(pro);
System.out.println(json);
}
@Test
//map
public void f4(){
Map<String, Object> map=new HashMap<>();
map.put("username", "tom");
map.put("age", 18);
JSONObject json = JSONObject.fromObject(map);
System.out.println(json);
}
@Test
//bean
public void f5(){
List<Province> list=new ArrayList<>();
list.add(new Province(1,"bj"));
list.add(new Province(2,"tj"));
list.add(new Province(3,"nj"));
list.add(new Province(4,"dj"));
JSONArray json = JSONArray.fromObject(list);
System.out.println(json);
}
}
通过输入流,来解析Json对象
@Test
public void parseJsonFromFile(){
final String filePath = "C:/Users/DELL/Desktop/APP/demo";
final String fileName = "ErrorExample.info";
InputStream in = null;
ValidateFileResponse validateFileResponse = new ValidateFileResponse();
try {
in = new FileInputStream(filePath + "/" + fileName);
validateFileResponse = JSONObject.parseObject(in, ValidateFileResponse.class);
log.info("name:{} version:{} author:{} ",validateFileResponse.getName(),validateFileResponse.getVersion(),validateFileResponse.getAuthor());
}catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
//文件解析失败
e.printStackTrace();
}catch (JSONException e){
//文件解析失败
e.printStackTrace();
log.error("{} json format error",fileName);
}finally {
if(in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
