我正在尝试将这个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