2015-02-10 81 views
0

我有返回JSON的REST C#WCF Web服務。從WCF服務到Android對象的JSON

{ 
    "GetProductResult": 
    { 
    "title": "Fishing stick", 
    "description": "Brand new" 
    } 
} 

然後我嘗試 「解析」,它使用GSON(我使用過Android Studio)本

Gson gson = new Gson(); 
    String jsonOutput = "{\"GetProductResults\":{\"name\":\"Fishing stick\",\"description\":\"Brand new\"}}"; 
    MyObject obj = gson.fromJson(jsonOutput, MyObject.class); 
    Log.d("OBJ",obj.title); 

但問題我gotis是爲MyObject是空的。如果我將JSON字符串更改爲

{ 
    "title": "Fishing stick", 
    "description": "Brand new" 
} 

它的工作原理。這裏唯一的區別是我刪除了「GetProductResult」數組,MyObject使用「title」和「description」填充。

這裏的MyObject類:

public class MyObject { 
    @SerializedName("title") 
    private String title; 
    @SerializedName("description") 
    private String description; 
} 

任何意見或建議?

+0

我的猜測是錯誤在'MyObject'類發生。也許你錯過了那裏的東西?發佈你的代碼? – 2015-02-10 17:06:21

+0

當然,我編輯了我的帖子。 – SuperManSL 2015-02-10 17:08:55

+0

編輯你的MyObject類,以便它匹配你的JSON的結構? – 2015-02-10 17:17:32

回答

0

好吧,我設法弄明白了。問題在於WCF Web服務。

方法需要有

BodyStyle = WebMessageBodyStyle.Bare 

所以最後的結果是這樣的

[OperationContract] 
    [WebInvoke(Method = "GET", 
     ResponseFormat = WebMessageFormat.Json, 
     BodyStyle = WebMessageBodyStyle.Bare, 
     UriTemplate = "getProduct")] 
    List<Product> getProduct();