Java中关于JSON格式数据的操作

对于java格式数据的处理:

   1: 先创建java实体类,例如:       

public class Brand {

            private String id;
            private String brandName;;
            public void setId(String id) {
                      this.id = id;
             }

             public String getId() {
                      return id;
             }

             public String getBrandName() {
                  return brandName;
             }

           public void setBrandName(String brandName) {
                  this.brandName = brandName;
          }

     2:创建java类的类对象           

            Brand brand1=new Brand();

            Brand brand2=new Brand();

     3:添加数据           

            brand1.setId(1);

            brand1.setBrandName("奔驰");

            brand2.setId(2);

            brand2.setBrandName("宝马");

     4:添加到 list 中         

 List list=new ArrayList();

 list.add(brand1);

 list.add(brand2);

     5:在json对应的数据格式(Object格式)中添加数据

 Map map=new LinkedHashMap();

  map.put("reason", "success");

  map.put("result", list); // list

     6:转化为json类型的数据并输出 //JSON.toJSONString(java类型数据)

              System.out.println(JSON.toJSONString(map));

------------------------------------------------------------------------------------------------------------------------

对于json格式数据:

  1:先用 JSONObject jsonObj=JSON.parseObject(str);    //str是json格式的数据

  2:对于获取不同格式的数据

      (1):JSONArray格式

        JSONArray jsonArray=jsonObj.getJSONArray("result");

      (2):JSONObject格式

         JSONObject provinceCompareJsonObj=

        jsonObj.getJSONObject("data").getJSONObject("provinceCompare");   

         //要获取"provinceCompare"内的数据“

         //data”内的数据为JSONObject格式,且"provinceCompare"内的数据也为JSONObject格式

  3:(1):对于要输出的数据是Object对象,例如{ 键1:{键2:值} }的格式   

for(Entry entry:provinceCompareJsonObj.entrySet()) {

        System.out.println("省份/直辖市:"+entry.getKey());     //获取其中的键1并输出
   
        //获取<键2:值>的对象,再依次输出其中的值
        JSONObject value=(JSONObject)entry.getValue();       

        System.out.println("nowConfirm:"+value.getIntValue("nowConfirm"));

        System.out.println("dead:"+value.getIntValue("dead"));

        System.out.println("heal:"+value.getIntValue("heal"));

        System.out.println("confirmAdd:"+value.getIntValue("confirmAdd"));

        System.out.println();

 }

      (2): 对于要输出的数据是数组对象 例如 [{键:值,键:值},{键:值,键:值}] 的格式

        1):遍历方法1

       对其中的每个值都通过对应的键来获取     

 //先获取jsonArray的长度,再遍历
 for(int i=0;i

     2):遍历方法2     

需要创建要获取的数据的类的对象,根据类对象的get方法获取值

//需要创建要获取的数据的类的对象,根据类对象的get方法获取值

  List questionList=jsonObj.getList("result", Detail.class);

  for(Detail detail:questionList) {

           System.out.println("题干:"+detail.getQuestion());

           System.out.println("答案:"+detail.getAnswer());

           System.out.println("选项1:"+detail.getItem1());

           System.out.println("选项2:"+detail.getItem2());

           System.out.println("解析:"+detail.getExplains());

           System.out.println();

  }

你可能感兴趣的:(java,java,json)