JSON字符串解析

有時保存在數據庫的數據是一串json字符串,須要進行讀取的時候就須要解析操做。數據庫

簡單介紹兩種:json

一、net.sf.json.*數組

二、com.alibaba.fastjson.*spa

須要的包自行下載。指針

第一種使用方式:orm

import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
three

僅爲json字符串時:字符串

                       String json = "{'first': 'one','next': 'two'}";get

                        try {

                                      JSONObject jsonObject = JSONObject.fromObject(json);

                                      Iterator it=jsonObject.keys();

                                      while (it.hasNext()){

                                      System.out.println(jsonObject.get(it.next()));

                                      }

                                      } catch (JSONException e) {

                                      e.printStackTrace();

                                      }string

json字符串數組解析:

String json = "[{'first': 'one','next': 'two'},{'first': 'three','next': 'fore'},{'first': 'five','next': 'six'}]";

                                      try {

                                      JSONArray jsonObject = JSONArray.fromObject(json);
                                      for (Iterator<Object> iterator = jsonObject.iterator(); iterator.hasNext();) {
                                          JSONObject job = (JSONObject) iterator.next();
                                          Iterator<Object> it=job.keys();
                                          while (it.hasNext()){
                                              System.out.println(job.get(it.next()));

                                              }
                                      }
                                      } catch (JSONException e) {

                                      e.printStackTrace();

                                      }

 

第二種使用方式:

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;

僅爲json字符串時:

ex:  String json = "{"j1":"json1","j2":"2","j3":false}";

                               JSONObject job = JSONObject.parseObject(json );
                               System.out.println(job.get("j1"));

                               可用toString()來轉換成字符串 但要注意job.get("")到的值爲空時會報空指針異常
                                      if(job.get("j2")!=null){

                                        System.out.println(Integer.parseInt(job.get("j2").toString()));
                                      }

                              //獲取Boolean類型數據

                               Boolean b=job.getBoolean(key)

                           或者 if(job.get("j3")!=null){
                                          String reCP=job.get("j3").toString();
                                          System.out.println(Boolean.getBoolean(j3));

                                  }

在不知道key的狀況下用job.keySet() 獲取全部key值再讀取;

ex:

                                            Set<String> s=job.keySet();
                                            for (String string : s) {
                                                System.out.println(job.get(string));
                                            }

json字符串數組解析:

            ex:  String json = "[{"j1":"json1","j2":"2","j3":false},{"j1":"json1","j2":"2","j3":false},{"j1":"json1","j2":"2","j3":false}]";

            JSONArray jarr = JSONArray.parseArray(insbuyschemeForm.getInsBuySchemeAwardList());
            for (Iterator<Object> iterator = jarr.iterator(); iterator.hasNext();) {
              JSONObject job = (JSONObject) iterator.next();

              //此處獲取方式和上面相同
            }

在不知道key的狀況下用job.keySet() 獲取全部key值再讀取;

                                try {

                                          JSONArray jarr = JSONArray.parseArray(json);
                                          for (Iterator<Object> iterator = jarr.iterator(); iterator.hasNext();) {
                                            JSONObject job = (JSONObject) iterator.next();
                                            Set<String> s=job.keySet();
                                            for (String string : s) {
                                                System.out.println(job.get(string));
                                            }
                                          }
                                      
                                      } catch (JSONException e) {

                                      e.printStackTrace();

                                      }

兩種包的解析都有不少方式,有興趣能夠看下其餘方式。json字符串有不少組合,可是都是JSONObject JSONArray的組合,轉換正確便可。

相關文章
相關標籤/搜索