java(android)从头开始创建JSONObject
我试着做一些类似的事情:java(android)从头开始创建JSONObject,java,android,eclipse,Java,Android,Eclipse,我试着做一些类似的事情: public static final JSONObject MYOBJ = new JSONObject().put("value", "expression"); 但是eclipse生气地说,尽管工具提示显示没有可用的解决方案 我已经尝试将JSONObject更改为typeString,但问题仍然是一样的。我不想使用散列映射,我真的很想使用JSON **编辑-代码位置** package ... import ... public class MyActivi
public static final JSONObject MYOBJ = new JSONObject().put("value", "expression");
但是eclipse生气地说,尽管工具提示显示没有可用的解决方案
我已经尝试将JSONObject
更改为typeString
,但问题仍然是一样的。我不想使用散列映射,我真的很想使用JSON
**编辑-代码位置**
package ...
import ...
public class MyActivity extends Activity {
public static final JSONObject MYOBJ = new JSONObject().put("value", "expression");
... // onCreate etc
}
put()的结果是一个对象。
分两行做,一切都好
public static final JSONObject MYOBJ = new JSONObject();
static {
MYOBJ.put("value", "expression");
}
请注意,静态final不会阻止对象被更改,只是原始引用MYOBJ将始终是同一个对象
编辑:
啊,我可能使用了不同风格的JSON库。尽管如此,上述方法可能会很好地发挥作用。如果所有类型都匹配,则向原始行添加更多的参数。put()的结果是一个对象。
分两行做,一切都好
public static final JSONObject MYOBJ = new JSONObject();
static {
MYOBJ.put("value", "expression");
}
请注意,静态final不会阻止对象被更改,只是原始引用MYOBJ将始终是同一个对象
编辑:
啊,我可能使用了不同风格的JSON库。尽管如此,上述方法可能会很好地发挥作用。如果所有类型都匹配,则在原始行中添加更多的参数。看来JSONObject有一个必须处理的已检查异常。试试这个
public static final JSONObject MYOBJ = new JSONObject(){
{
try {
put("value", "expression");
} catch(Exception e){
e.printStackTrace();
}
}
};
看来JSONObject有一个必须处理的已检查异常。试试这个
public static final JSONObject MYOBJ = new JSONObject(){
{
try {
put("value", "expression");
} catch(Exception e){
e.printStackTrace();
}
}
};
你到底把这个语句放在哪里?你到底把这个语句放在哪里?对于哪个JSONObject?根据这一点,它是一个JSONObject,非常确定它是一个例外;)@杰克逊的
静态
与此无关final
表示引用在赋值后不会更改,static
表示它是一个类变量(与实例变量相反)。@Dave我想我的用法是错误的,但无论哪种方式,我在第2-4行中都给出了+1。@Jackson哦,那是;我懂了。是的,静态初始化块。哪个JSONObject?根据这一点,它是一个JSONObject,非常确定它是一个例外;)@杰克逊的静态
与此无关final
表示引用在赋值后不会更改,static
表示它是一个类变量(与实例变量相反)。@Dave我想我的用法是错误的,但无论哪种方式,我在第2-4行中都给出了+1。@Jackson哦,那是;我懂了。是的,静态初始化块。这是一个难题,似乎运行时异常会是一个更好的选择。幸运的是,它不是final
,所以抛出RTE的委托类是很麻烦的:)这是一个难题,似乎运行时异常是一个更好的选择。幸运的是,它不是最终的
,因此抛出RTE的委托类是不可取的:)