2017-12-20 17 views
3

結果には修正された解析済みJSONが含まれています。 デシリアライズListの後に正しい数量のアイテムが含まれていますが、すべてがになっています。 修正方法?私はGsonは空のフィールドを非直列化します

UnitView[] unitViews = gson.fromJson(result, UnitView[].class); 

項目のフィールドのような場合でも

Gson gson = new Gson(); 
List<UnitView> unitViews = new ArrayList<UnitView>(); 
// https://stackoverflow.com/questions/5554217/google-gson-deserialize-listclass-object-generic-type 
Type typeToken = new TypeToken<List<UnitView>>() { }.getType(); 
unitViews = gson.fromJson(result,typeToken); 

も同様に空です。

UnitView

public class UnitView implements Serializable { 

    public String id ; 

    public String name ; 

    public String description ; 

    public String deviceTypeName ; 


    public String categoryID ; 

    public String lastOnline ; 

    public String latitude ; 

    public String longitude ; 

    public String atTime ; 

    public String getId() { 
     return id; 
    } 

    public String getName() { 
     return name; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public String getDeviceTypeName() { 
     return deviceTypeName; 
    } 

    public String getCategoryID() { 
     return categoryID; 
    } 

    public String getLastOnline() { 
     return lastOnline; 
    } 

    public String getLatitude() { 
     return latitude; 
    } 

    public String getLongitude() { 
     return longitude; 
    } 

    public String getAtTime() { 
     return atTime; 
    } 

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

    public void setName(String name) { 
     this.name = name; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    public void setDeviceTypeName(String deviceTypeName) { 
     this.deviceTypeName = deviceTypeName; 
    } 

    public void setCategoryID(String categoryID) { 
     this.categoryID = categoryID; 
    } 

    public void setLastOnline(String lastOnline) { 
     this.lastOnline = lastOnline; 
    } 

    public void setLatitude(String latitude) { 
     this.latitude = latitude; 
    } 

    public void setLongitude(String longitude) { 
     this.longitude = longitude; 
    } 

    public void setAtTime(String atTime) { 
     this.atTime = atTime; 
    } 
} 

JSONデータ

[{"ID":"294","Name":"Foton Tunland № F110","Description":null,"DeviceTypeName":"Техника ТО","CategoryID":"18","LastOnline":"19.12.2017 20:38:04","Latitude":"11,40119","Longitude":"11,42403","AtTime":"19.12.2017 20:38:04"},{"ID":"295","Name":"DML LP1200 № 9793","Description":null,"DeviceTypeName":"Буровой станок дизельный","CategoryID":"15","LastOnline":null,"Latitude":null,"Longitude":null,"AtTime":null}] 
+0

あなたの質問にあなたのjsonデータを入れることができますか? – diegoveloper

+0

私は、あなたのjson –

+0

@diegoveloper Doneを見る必要があるかもしれません。 Plsそれを確認します。 –

答えて

2

[OK]を、問題は、パーサは大文字と小文字が区別され、あなたが名前を一致させるために、あなたの属性の名前を変更することができるということですあなたのjson値のうち、次のようなSerializedNameアノテーションを使用できます:

@SerializedName("ID") 
public String id ; 
@SerializedName("Name") 
    public String name ; 
@SerializedName("Description") 
    public String description; 
... 

または

public String ID ; 
    public String Name ; 
    public String Description ; 
... 
-2

私はあなたのためにあなたのJSONでnull値のこのような問題を抱えていると思います。 確認してください。 Source

関連する問題