JSON中.put()和.element()方法之间的区别?

时间:2012-02-23 14:58:46

标签: java json json-lib

我正在尝试为我的数据创建json对象。

我发现,我可以使用两种方法来做到这一点: -

put()element()

请建议我,应该使用。

我的数据是例如: -

key="id" value=32

提前致谢!!

1 个答案:

答案 0 :(得分:2)

在检查源代码之后,看来put和元素之间的差异非常小。

主要区别在于,put似乎返回之前在您输入的键位于属性映射中的对象。所以,如果你有一个像这样结构的JSONObject:

{
    "steve": 4,
    "betty": 5
}

并执行如下命令:

Object frank = myJsonObject.put(“steve”,10);

frank的值现在为4,json对象现在看起来像这样:

{
    "steve":10,
    "betty":5
}

如果您使用过.element("steve", 10);在相同的情况下,从该方法返回的对象实际上是您的JSONObject。两者之间的另一个区别是put方法的第一个参数是Object,而element方法的第一个参数是Stringput方法只对发送到其中的第一个参数执行String.valueOf(),然后调用element方法,所以基本上它们都做同样的事情,只有put更多灵活且技术上允许非字符串键,然后在调用element方法之前将其转换为字符串。

简而言之,它们具有不同的参数和返回值,但put方法无论如何都只调用了元素方法,因此JSONObject中没有真正的区别,但可能在您的外部代码中。

我猜jQuery用户更愿意使用element,因为该语言与该语言的相似之处在于该方法返回调用对象。