2015-02-10 4 views
0

У меня есть веб-служба REST C# WCF, которая возвращает JSON.JSON от службы WCF к объекту android

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

Тогда я пытаюсь «разобрать» его с помощью GSON (я использую андроид студии) с этим

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 заполнен «заголовком» и «описанием».

Вот MyObject класс:

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

Любые идеи или предложения?

+0

Я предполагаю, что ошибка происходит на классе 'MyObject'. Может, что-то там чего-то не хватает? Отправьте свой код? –

+0

Конечно, я редактировал свой пост. – SuperManSL

+0

Изменить класс MyObject так, чтобы он соответствовал структуре вашего JSON? –

ответ

0

Хорошо, мне удалось разобраться. Проблемы заключаются в веб-сервисе WCF.

Метод должен иметь

BodyStyle = WebMessageBodyStyle.Bare 

Так конечный результат что-то вроде этого

[OperationContract] 
    [WebInvoke(Method = "GET", 
     ResponseFormat = WebMessageFormat.Json, 
     BodyStyle = WebMessageBodyStyle.Bare, 
     UriTemplate = "getProduct")] 
    List<Product> getProduct(); 
Смежные вопросы