得到一个对象JSON表达
问题描述:
在这个表达式:得到一个对象JSON表达
obj: {"created":"2017/02/09 15:57","fields":{"summary":"(30) #F24 Emarsys ==> Mise à jour du fichier de transfert/Dépriorisé en attendant PARDOT","issuetype":{"name":"Task"},"created":"589c8377576a33706397f3f4","
我认为这是一个微不足道的问题,但我不到货得到这个表达式:
obj: {"created":"2017/02/09 15:57" ...
我做的:
String created2 = obj.getJSONObject("fields").getString("created");
但我得到:
"created":"589c8377576a33706397f3f4"
我没有成功获得“创建”的第一个元素。
请你能建议我做这个东西。
答
根据RFC7159, "The JavaScript Object Notation (JSON) Data Interchange Format":
当一个对象中的名称不 独特的软件接收这样一个对象的行为是不可预知的 。许多实现仅报告姓名/值对 。其他实现报告错误或无法解析对象,并且某些实现报告了所有名称/值对,包括重复项,即 。
您正在看到第一个选项“许多实现仅报告姓/值对”。一般来说,最好将JSON对象中的键保持为唯一。
+0
我对“put”方法做了一个混淆:obj.put(“created”,formatted);.出于这个原因,我有两次“创造”的关键。事实上,我搜索替换“创建”:“589c8377576a33706397f3f4”“”由“创建”:“2017/02/09 15:57” – Ale
答
OK的家伙,我找到了解决办法:
要插入我的著名日在现场"created"
,我做的:
obj.getJSONObject("fields").put("created",formatted);
最后,我得到:
obj : {"fields":{"summary":"(30) #F24 Emarsys ==> Mise à jour du fichier de transfert/Dépriorisé en attendant PARDOT","issuetype":{"name":"Task"},"created":"2017/02/09 15:57","project":
由于在所有!
Ale
您正在获得正确的行为。如果在JSON对象中找到多个名称相同的字段,则最后一个字段会胜出。 – Adrian
嗨,真的吗?! – Ale