2
通过浏览各地我并成功设法创建一个类,可以通过dat:convert
暴露Map toJson()
方法“中选择”,可以是JSON-指明分数与JSON.encode(myClass)
,更以下类似如下:使用JSON.decode()的镖从JSON字符串实例类
//My dummy class
class MyClass{
String p1;
String p2;
Map toJson{
return {
'p1':this.p1,
'p2':this.p2
}
}
}
//so I can do
String jsonString = JSON.encode(myClass)
不过,我想围绕这样做,甚至其他的方式,如:
String jsonString = '{"p1":"value","p2":"value"}'
MyClass instance = JSON.decode(jsonString)
但到目前为止,我没能找到一种方法。 我知道我可以建立我的类的构造函数,从地图初始化它,像:
String jsonString = '{"p1":"value","p2":"value"}'
MyClass instance = MyClass.fromMap(JSON.decode(jsonString))
不过,我一直在寻找的只使用JSON.encode()和JSON.decode更加“对称”方式(),它在某种程度上可行吗?我错过了什么吗?
大约只是隐藏什么'JSON.decode'在构造函数中吗?看起来像(这只是我的意见)最好显式地调用'toJson()',如果异常被抛出它,它不会出现在堆栈跟踪中(我不知道为什么)。 –
嗯,我当然可以,但我的问题更多的是知道为什么我可以选择进入JSON.encode()通过暴露toJson()而不是其他方式。 –