繁体   English   中英

JSON用GSON解析

[英]JSON Parsing with GSON

我有以下Json字符串。如何在Java中使用Gson解析这种Json?任何帮助将不胜感激。

{
"acclst":[{
        "accountInfoData":[{
                "userId":9,
                "rid":"1-Z5S3",
                "acnme":"acc_1234.",
                "actpe":"Fabricator / Distributor",
                "mph":"2660016354",
                "euse":"Biofuels",
                "com":"0",
                "sta":"Active",
                "stem":"BBUSER5",
                "wsite":"",
                "fax":"",
                "zone":"",
                "crted":"BBUSER4",
                "statusX":1,
                "partyId":0,
                "address":[]
            }
        ]
    }
],
"conlst":[],
"actlst":[],
"prolst":[],
"code":"200"
}

你的Gson getter / Setter课程将是

sample.java

public class sample {

    public String code="";
    ArrayList<String> conlst; 
    ArrayList<String> actlst;
    ArrayList<innerObject> prolst;

    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public ArrayList<String> getConlst() {
        return conlst;
    }
    public void setConlst(ArrayList<String> conlst) {
        this.conlst = conlst;
    }
    public ArrayList<String> getActlst() {
        return actlst;
    }
    public void setActlst(ArrayList<String> actlst) {
        this.actlst = actlst;
    }
    public ArrayList<innerObject> getProlst() {
        return prolst;
    }
    public void setProlst(ArrayList<innerObject> prolst) {
        this.prolst = prolst;
    }

}

innerObject.java

public class innerObject {

    ArrayList<String> accountInfoData;

    public ArrayList<String> getAccountInfoData() {
        return accountInfoData;
    }

    public void setAccountInfoData(ArrayList<String> accountInfoData) {
        this.accountInfoData = accountInfoData;
    }


}

secondInnerObject.java

public class secondInnerObject {

    public String userId="";
    public String rid="";
    public String acme="";
    public String actpe="";
    public String mph="";
    public String euse="";
    public String com="";
    public String sta="";
    public String stem="";
    public String wsite="";
    public String fax="";
    public String zone="";
    public String crted="";
    public String statusX="";
    public String partyId="";
    ArrayList<String> address;
    ArrayList<String> accountInfoData;

    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getRid() {
        return rid;
    }
    public void setRid(String rid) {
        this.rid = rid;
    }
    public String getAcme() {
        return acme;
    }
    public void setAcme(String acme) {
        this.acme = acme;
    }
    public String getActpe() {
        return actpe;
    }
    public void setActpe(String actpe) {
        this.actpe = actpe;
    }
    public String getMph() {
        return mph;
    }
    public void setMph(String mph) {
        this.mph = mph;
    }
    public String getEuse() {
        return euse;
    }
    public void setEuse(String euse) {
        this.euse = euse;
    }
    public String getCom() {
        return com;
    }
    public void setCom(String com) {
        this.com = com;
    }
    public String getSta() {
        return sta;
    }
    public void setSta(String sta) {
        this.sta = sta;
    }
    public String getStem() {
        return stem;
    }
    public void setStem(String stem) {
        this.stem = stem;
    }
    public String getWsite() {
        return wsite;
    }
    public void setWsite(String wsite) {
        this.wsite = wsite;
    }
    public String getFax() {
        return fax;
    }
    public void setFax(String fax) {
        this.fax = fax;
    }
    public String getZone() {
        return zone;
    }
    public void setZone(String zone) {
        this.zone = zone;
    }
    public String getCrted() {
        return crted;
    }
    public void setCrted(String crted) {
        this.crted = crted;
    }
    public String getStatusX() {
        return statusX;
    }
    public void setStatusX(String statusX) {
        this.statusX = statusX;
    }
    public String getPartyId() {
        return partyId;
    }
    public void setPartyId(String partyId) {
        this.partyId = partyId;
    }
    public ArrayList<String> getAddress() {
        return address;
    }
    public void setAddress(ArrayList<String> address) {
        this.address = address;
    }
    public ArrayList<String> getAccountInfoData() {
        return accountInfoData;
    }
    public void setAccountInfoData(ArrayList<String> accountInfoData) {
        this.accountInfoData = accountInfoData;
    }


}

获取

String json= "your_json_string";
Gson gson= new Gson();
sample objSample=gson.fromJson(json,sample.getClass());

而已

你必须使用JSONObject来解析android中的这个json。

看看以下链接。

http://developer.android.com/reference/org/json/JSONObject.html

Android已包含所需的JSON库。 您可以使用有效的字符串或文件进行输入。 下面是代码,并解释取自这里

import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;

public class JsonParser extends Activity {
    private JSONObject jObject;
    private String jString = "{\"menu\": {\"id\": \"file\", \"value\": \"File\", \"popup\": { \"menuitem\": [ {\"value\": \"New\",   \"onclick\": \"CreateNewDoc()\"}, {\"value\": \"Open\", \"onclick\": \"OpenDoc()\"}, {\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}]}}}";//write your JSON String here

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        try {
            parse();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private void parse() throws Exception {
        jObject = new JSONObject(jString);

        JSONObject menuObject = jObject.getJSONObject("menu");
        String attributeId = menuObject.getString("id");
        System.out.println(attributeId);

        String attributeValue = menuObject.getString("value");
        System.out.println(attributeValue);

        JSONObject popupObject = menuObject.getJSONObject("popup");
        JSONArray menuitemArray = popupObject.getJSONArray("menuitem");

        for (int i = 0; i < 3; i++) {
            System.out.println(menuitemArray.getJSONObject(i)
                    .getString("value").toString());
            System.out.println(menuitemArray.getJSONObject(i).getString(
                    "onclick").toString());
        }
    }
}

在这里,您有一个教程可以满足您的需求 - Android + Gson

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM