先贴代码再解释问题,Json数据如下:
[ {"musicName":"nuoya.mp3"}, {"musicName":"john.mp3"} ]
实体类的代码如下:
package com.example.jsonparsetest; import java.util.ArrayList; import java.util.List; public class Resource{ private String musicName; public String getMusicName() { return musicName; } public void setMusicName(String musicName) { this.musicName = musicName; } }
解析方法的代码如下:
package com.example.jsonparsetest; import java.lang.reflect.Type; import java.util.Iterator; import java.util.LinkedList; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; public class JsonUtils { public void parseMusicFromJson(String jsonData){ Type listType = new TypeToken<LinkedList<Resource>>(){}.getType(); Gson gson = new Gson(); LinkedList<Resource> resources = gson.fromJson(jsonData, listType); for (Iterator iterator = resources.iterator(); iterator.hasNext();) { Resource resource = (Resource) iterator.next(); System.out.println("musicName-->"+resource.getMusicName()); } } }
代码贴完了,对于这种直接一个数组的Json数据是能正常解析的,但是假如在数组前添加了头就解析不了了,例如这样:
{"Music":[ {"musicName":"nuoya.mp3"}, {"musicName":"john.mp3"} ]}
想问一下实体类和解析方法的代码怎么改?最好能给个小demo,原因是代码量确实不多,小弟刚开始学,希望各位能不吝赐教!
解决方案
20
新建一个类
public class MyResource
{
public List<Resource> Music;
}
解析:
gson.fromJson(jsonData, MyResource.class)
public class MyResource
{
public List<Resource> Music;
}
解析:
gson.fromJson(jsonData, MyResource.class)