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(); } } } }