Android中JSON Web服务的反序列化



我正在尝试将这个JSON数组反序列化到我的android项目中。

[{"Name":"Ban","Price":1},{"Name":"Banana","Price":1},{"Name":"chicken","Price":14},{"Name":"pizza","Price":16},{"Name":"slice","Price":1}]

我在Asp.net中创建了这个Web服务。我用来反序列化它的代码低于

public void onClick(View v)
{
    String url="http://192.168.15.2/MyAndroid/InputCaller.aspx"; //do not use localhost
    String response=callWebService(url);
    List<Items> mObjectList =  new ArrayList<Items>() ;
    ItemsList list = null;
    Gson gson = new Gson();
    list = gson.fromJson(response, ItemsList.class);
    // list = getItemsList(response);
    Intent myIntent = new Intent(v.getContext(), Cart.class);
    startActivity(myIntent);    
}
public final ItemsList getItemsList (String jsonString)
{
    ItemsList il = null;
    Gson gson = new Gson();
    il = gson.fromJson(jsonString, ItemsList.class);
    return il;
}
public class ItemsList
{
    private List<ItemsContainer> items = new ArrayList<ItemsContainer>();
    public List<ItemsContainer> getItemsContainerList()
    {
        return items;
    }
}
class ItemsContainer
{
    Items items;
    public Items getItem()
    {
        return items;
    }
}
public class Items
{
    String Name;
    int Price;
}

它不起作用,当我尝试调试它时,我在list=gson.fromJson(response,ItemsList.class)上得到了这条消息;找不到Gson.class源。这是我的第一个去序列化程序,如果有人帮我,我将不胜感激。谢谢你,

不要为Items类使用更多的父类(作为容器),从而使事情变得复杂。只需使用Gson将所有项目反序列化为List对象,如下所示:

List<Items> listItems = (List<Items>) gson.fromJson(response,
                                       new TypeToken<List<Items>>(){}.getType());

现在您已经获得了List对象中的所有项:listItems

相关内容

  • 没有找到相关文章

最新更新