我正在尝试parse
JSON
GSON
文件到Gson gson = new GsonBuilder().create();
Person p1 = gson.fromJson(new FileReader("/Users/blabla/Desktop/person.json"), Person.class);
System.out.println(p1);
的Java,我有问题
public class Person {
private String name;
private int age;
private List<String> Friends;
//Getters and setters
这是我的Person类
{
"Name":"TEXT",
"Weight":95,
"Height":1.87,
"Friends":[
"FRIEND1",
"FRIEND2",
"FRIEND3"
]
}
这是我的JSON文件
Person@52b2a2d8
输出为let displayLink = CADisplayLink(target: self, selector: #selector(update))
displayLink.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode
let expectedFramesPerSecond = 60
var diff : CGFloat = 0
func update() {
let diffUpdated = self.headerView.arcHeight - self.new_headerView_arcHeight
let done = (fabs(diffUpdated) < 0.1)
if(!done){
self.headerView.arcHeight -= diffUpdated/(expectedFramesPerSecond*0.5)
self.setNeedsDisplay()
}
}
我做错了什么?
答案 0 :(得分:2)
命名很重要......你需要确保JSON keys
与你的班级attributes
(小写/大写)等相同......
将JSON
更改为
{ "name":"TEXT", "Weight":95, "Height":1.87, "Friends": [ "fRIEND1", "FRIEND2", "FRIEND3" ] }
或更改您的Person class
属性
private String Name;
private int age;
private List<String>Friends;
此外,您需要在Override toString
中使用Person class
方法才能获得良好的打印
e.g。
将此添加到您的Person类:
@Override
public String toString() {
return (name + " : " + age + " : " + Friends);
}
答案 1 :(得分:1)
如果Person类没有toString方法,那么结果当然会喜欢这个。你需要覆盖toString()。
你可以在这里看到toString()How to use the toString method in Java?
答案 2 :(得分:0)
1)您的属性名称应与JSON
值
2)右键单击eclipse并生成toString()
方法。
例: 人类应该是
public class Person {
String name;
int age;
List<String> friends
//Getters and setters
}