Java GSON解析通用Json数组
我的问题与此非常相似: 但我无法从中得到答案。 以上链接的答案是:Java GSON解析通用Json数组,java,json,gson,Java,Json,Gson,我的问题与此非常相似: 但我无法从中得到答案。 以上链接的答案是: public static List<MapData> getData(){ Gson gson = new Gson(); String jsonString = "[{\"id\":18,\"city\":\"test\",\"street\":\"test 1\",\"zipcode\":121209,\"state\":\"IL\",\"lat\":32.158138,\"lng\":34.
public static List<MapData> getData(){
Gson gson = new Gson();
String jsonString = "[{\"id\":18,\"city\":\"test\",\"street\":\"test 1\",\"zipcode\":121209,\"state\":\"IL\",\"lat\":32.158138,\"lng\":34.807838},{\"id\":19,\"city\":\"test\",\"street\":\"1\",\"zipcode\":76812,\"state\":\"IL\",\"lat\":32.161041,\"lng\":34.810410}]";
Type type = new TypeToken<List<MapData>>(){}.getType();
return gson.fromJson(jsonString, type);
}
有人能告诉我为什么我会犯这个错误吗?TypeToken类中不支持隐式运算符吗 我遇到了同样的问题。从:
此语法不能用于创建具有通配符参数的类型文字,例如
Class
或List我遇到了相同的问题。从:
此语法不能用于创建具有通配符参数的类型文字,例如Class
或List您可以这样做:
Gson gson = new Gson();
String jsonString = "[{\"id\":18,\"city\":\"test\",\"street\":\"test 1\",\"zipcode\":121209,\"state\":\"IL\",\"lat\":32.158138,\"lng\":34.807838},{\"id\":19,\"city\":\"test\",\"street\":\"1\",\"zipcode\":76812,\"state\":\"IL\",\"lat\":32.161041,\"lng\":34.810410}]";
List<Map> tmpList = gson.fromJson(jsonString);
List<T> resultList = new Arraylist<T>(tmplist.size());
for(Map map:tmpList){
String tmpJson = gson.toJson(map);
resultList.add(gson.fromJson(tmpJson, classT));
}
return resultList;
Gson-Gson=new-Gson();
字符串jsonString=“[{\'id\'”:18,“城市:\'test\”,“街道:\'test 1\”,“zipcode\”:121209,\'state\:“IL\”,“lat\”:32.158138,\'lng\:34.807838},{\'id\:19,\'city\”:“test\”,\'street\:“1\”,“zipcode\:76812,\'state\:“IL\”,“lat\”:34.807838},{\'id\”,“街道:“:“test\”,'81034.41034,\';
列出tmpList=gson.fromJson(jsonString);
List resultList=newarraylist(tmplist.size());
用于(地图:tmpList){
字符串tmpJson=gson.toJson(map);
add(gson.fromJson(tmpJson,classT));
}
返回结果列表;
您可以这样做:
Gson gson = new Gson();
String jsonString = "[{\"id\":18,\"city\":\"test\",\"street\":\"test 1\",\"zipcode\":121209,\"state\":\"IL\",\"lat\":32.158138,\"lng\":34.807838},{\"id\":19,\"city\":\"test\",\"street\":\"1\",\"zipcode\":76812,\"state\":\"IL\",\"lat\":32.161041,\"lng\":34.810410}]";
List<Map> tmpList = gson.fromJson(jsonString);
List<T> resultList = new Arraylist<T>(tmplist.size());
for(Map map:tmpList){
String tmpJson = gson.toJson(map);
resultList.add(gson.fromJson(tmpJson, classT));
}
return resultList;
Gson-Gson=new-Gson();
字符串jsonString=“[{\'id\'”:18,“城市:\'test\”,“街道:\'test 1\”,“zipcode\”:121209,\'state\:“IL\”,“lat\”:32.158138,\'lng\:34.807838},{\'id\:19,\'city\”:“test\”,\'street\:“1\”,“zipcode\:76812,\'state\:“IL\”,“lat\”:34.807838},{\'id\”,“街道:“:“test\”,'81034.41034,\';
列出tmpList=gson.fromJson(jsonString);
List resultList=newarraylist(tmplist.size());
用于(地图:tmpList){
字符串tmpJson=gson.toJson(map);
add(gson.fromJson(tmpJson,classT));
}
返回结果列表;
您可以使用此方法解析要映射的通用json字符串
public Map<String, String> getMapFromJson(String jsonString) {
Map<String, String> map = new HashMap<>();
try {
JSONObject object = new JSONObject(jsonString);
Iterator<?> iterator = object.keys();
while (iterator.hasNext()) {
String key = (String) iterator.next();
if(!key.isEmpty() && !object.getString(key).isEmpty()){
map.put(key, object.getString(key));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return map;
}
公共映射getMapFromJson(字符串jsonString){
Map Map=newhashmap();
试一试{
JSONObject对象=新的JSONObject(jsonString);
迭代器迭代器=object.keys();
while(iterator.hasNext()){
字符串键=(字符串)迭代器。下一步();
如果(!key.isEmpty()&&!object.getString(key.isEmpty()){
map.put(key,object.getString(key));
}
}
}捕获(JSONException e){
e、 printStackTrace();
}
返回图;
}
您可以使用此方法解析要映射的通用json字符串
public Map<String, String> getMapFromJson(String jsonString) {
Map<String, String> map = new HashMap<>();
try {
JSONObject object = new JSONObject(jsonString);
Iterator<?> iterator = object.keys();
while (iterator.hasNext()) {
String key = (String) iterator.next();
if(!key.isEmpty() && !object.getString(key).isEmpty()){
map.put(key, object.getString(key));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return map;
}
公共映射getMapFromJson(字符串jsonString){
Map Map=newhashmap();
试一试{
JSONObject对象=新的JSONObject(jsonString);
迭代器迭代器=object.keys();
while(iterator.hasNext()){
字符串键=(字符串)迭代器。下一步();
如果(!key.isEmpty()&&!object.getString(key.isEmpty()){
map.put(key,object.getString(key));
}
}
}捕获(JSONException e){
e、 printStackTrace();
}
返回图;
}
我认为这是一种黑客行为,这样的代码不应该在生产环境中使用。通过应用此过程,将创建一个新集合,并将项目转移到新结构中。我认为这是一种黑客行为,这样的代码不应在生产环境中使用。通过应用此过程,将创建一个新集合,并将项目转移到新结构中。
public Map<String, String> getMapFromJson(String jsonString) {
Map<String, String> map = new HashMap<>();
try {
JSONObject object = new JSONObject(jsonString);
Iterator<?> iterator = object.keys();
while (iterator.hasNext()) {
String key = (String) iterator.next();
if(!key.isEmpty() && !object.getString(key).isEmpty()){
map.put(key, object.getString(key));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return map;
}