2017-02-21 21 views
-2

Ich versuche, geschachtelte JSON-Datenantwort zu parsen, aber ich kann nicht. Unter dem Code ist mein verschachtelter JSON.Verschachtelte JSON-Parsing in Android

{ 
"Result": [ 
{ 
    "Stock": { 
    "ID": 1, 
    "Code": "sample string 2", 
    "SerialNo": "sample string 3", 
    "RFID": "sample string 4", 
    "PairCode": "sample string 5", 
    "Barcode": "sample string 6", 
    "Name": "sample string 7", 
    "Description": "sample string 8", 
    "Model": "sample string 9", 
    "CategoryId": 1, 
    "BrandId": 1, 
    "ClassificationId": 1 
    }, 
    "Division": { 
    "ID": 1, 
    "Name": "sample string 2", 
    "ParentID": 1, 
    "Path": "sample string 3" 
    }, 
    "User": { 
    "ID": 1, 
    "Name": "sample string 2", 
    "Username": "sample string 3", 
    "Password": "sample string 4" 
    } 
}, 
{ 
    "Stock": { 
    "ID": 1, 
    "Code": "sample string 2", 
    "SerialNo": "sample string 3", 
    "RFID": "sample string 4", 
    "PairCode": "sample string 5", 
    "Barcode": "sample string 6", 
    "Name": "sample string 7", 
    "Description": "sample string 8", 
    "Model": "sample string 9", 
    "CategoryId": 1, 
    "BrandId": 1, 
    "ClassificationId": 1 
    }, 
    "Division": { 
    "ID": 1, 
    "Name": "sample string 2", 
    "ParentID": 1, 
    "Path": "sample string 3" 
    }, 
    "User": { 
    "ID": 1, 
    "Name": "sample string 2", 
    "Username": "sample string 3", 
    "Password": "sample string 4" 
    } 
}, 
{ 
    "Stock": { 
    "ID": 1, 
    "Code": "sample string 2", 
    "SerialNo": "sample string 3", 
    "RFID": "sample string 4", 
    "PairCode": "sample string 5", 
    "Barcode": "sample string 6", 
    "Name": "sample string 7", 
    "Description": "sample string 8", 
    "Model": "sample string 9", 
    "CategoryId": 1, 
    "BrandId": 1, 
    "ClassificationId": 1 
    }, 
    "Division": { 
    "ID": 1, 
    "Name": "sample string 2", 
    "ParentID": 1, 
    "Path": "sample string 3" 
    }, 
    "User": { 
    "ID": 1, 
    "Name": "sample string 2", 
    "Username": "sample string 3", 
    "Password": "sample string 4" 
    } 
} 
], 
"RecordCount": 1 
} 

Und meine Antwort Klasse

public class ResultResponseModel<T>{ 

public int RecordCount; 

public T Result[]; 

public int getRecordCount() { 
    return RecordCount; 
} 

public void setRecordCount(int recordCount) { 
    RecordCount = recordCount; 
} 

public T[] getResult() { 
    return Result; 
} 

public void setResult(T[] result) { 
    Result = result; 
} 

}

die andere Klasse

public class ServiceStockDivisionUserModel { 

public ServiceStockDivisionUserModel() 
{ 
    Stock = new ServiceStockModel(); 

    Division = new ServiceDivisionModel(); 

    User = new ServiceUserModel(); 
} 

public ServiceStockModel Stock ; 

public ServiceDivisionModel Division ; 

public ServiceUserModel User ; 


public ServiceStockModel getStock() { 
    return Stock; 
} 

public void setStock(ServiceStockModel stock) { 
    Stock = stock; 
} 

public ServiceDivisionModel getDivision() { 
    return Division; 
} 

public void setDivision(ServiceDivisionModel division) { 
    Division = division; 
} 

public ServiceUserModel getUser() { 
    return User; 
} 

public void setUser(ServiceUserModel user) { 
    User = user; 
} 

}

Ich versuche, meine Json ResultResponseModel nach, dass der Gusses Service zu werfen tackDivisionUserMopdel, um als Objekt zu erhalten. Aber ich kann nicht casten, Jeder kann mir helfen. Vielen Dank.

Mein Grund:

JSONObject jsonObj = new JSONObject(responseModel.responseString); 

Gson gson = new Gson(); 

listResultResponseModel = gson.fromJson(String.valueOf(jsonObj), ResultResponseModel.class); 

enter image description here

+0

Mögliche Duplikate von [Wie JSON in Android zu parsen] (http://stackoverflow.com/questions/9605913/how-to-parse-json-in-android) –

+0

Oh nicht natürlich – artemitSoft

+0

Können Sie mir sagen, die Grund dafür? –

Antwort

0

Hier haben Sie die tatsächliche Antwort analysieren Sie vom Server oder eine andere Ressource erhalten

JSONArray result = response.optJSONArray("Result"); 
     int length = result.length(); 
     for(int i=0; i<length; i++){ 
      JSONObject userData = result.optJSONObject(i); 
      User user = new User(userData.optJSONObject("User")); 
      Division division = new Division(userData.optJSONObject("Division")); 
      Stock stock = new Stock(userData.optJSONObject("Stock")); 
     } 

Benutzer.java

Ähnlich wie Sie Klassen für Stock und Division erstellen und JSON intern behandeln müssen.

+0

Thans für Ihre Hilfe – artemitSoft

0
FullResponse model = new Gson().fromJson(JSON_STRING, FullResponse.class); 

das Modell wie diese machen.

public class FullResponse{ 
    List<ResultResponse> Result; 
    int RecordCount; 

    //setter and getter 
} 

public class ResultResponse{ 
    StockResponse Stock; 
    DivisionResponse Division; 
    UserResponse User; 

    //setter and getter 
} 

public class StockResponse{ 
    int ID; 
    String Code; 
    .... 

    //getter 
} 

public class DivisionResponse{ 
    int ID; 
    String Name; 
    .... 

    //getter 
} 

public class UserResponse{ 
    int ID; 
    String Name; 
    .... 

    //getter 
} 

Optional

Wenn Sie möchten, um zu überprüfen, ob Ihre json wenn gültig ist oder nicht ..

public boolean isJSONValid(String test) { 
    try { 
     new JSONObject(test); 
    } catch (JSONException ex) { 
     try { 
      new JSONArray(test); 
     } catch (JSONException ex1) { 
      return false; 
     } 
    } 
    return true; 
} 
Verwandte Themen