我需要将值从json文件传递到java类,json文件就像这样的例子:
{
"id":1,
"name":"Gold",
"description":"Shiny!",
"spriteId":1,
"consumable":true,
"effectsId":[1]
},
我需要映射,我做了这个:
Items i = new Items();
Map mapaNomes = new HashMap();
mapaNomes.put("Gold",i);
mapaNomes.put("Apple",i );
mapaNomes.put("Clain Mail",i );
我是Android开发人员的新手,我可能会忘记一些事情因为以下内容不起作用,有人可以帮忙找出问题所在?
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
Gson gson = new Gson();
Items Items = gson.fromJson((BufferedReader) mapaNomes, Items.class);
解决方法:
1.为您的Json创建POJO表示.
public class MapaNomes() {
String name;
String description;
// etc
public String getName() {
return name;
}
// create your other getters and setters
}
2.阅读你的file.json.把它变成对象
JsonReader reader = new JsonReader(new FileReader("file.json"));
MapaNomes mapaNomes = new Gson().fromJson(reader, MapaNomes.class);
奖金
我在想你的file.json中可能有很多json对象,例如:
{
"id":1,
"name":"Gold",
"description":"Shiny!",
"spriteId":1,
"consumable":true,
"effectsId":[1]
},
...
{
"id":999,
"name":"Silver",
"description":"Whatever!",
"spriteId":808,
"consumable":true,
"effectsId":[2]
},
如果是这种情况,那么您可以执行以下操作:
JsonReader reader = new JsonReader(new FileReader("file.json"));
List mapaNomeses = new Gson().fromJson(
reader,
new TypeToken>() {}.getType());
Then you can do whatever you want with each and every one of them
for (MapaNomes mapaNomes : mapaNomeses) {
// whatever
}
标签:json,java,android,gson
来源: https://codeday.me/bug/20190609/1202748.html