Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将映射转换为JSONObject_Java_Json - Fatal编程技术网

Java 将映射转换为JSONObject

Java 将映射转换为JSONObject,java,json,Java,Json,实际结果: [{"containerType":"Drive","testAtts":"{"idNbr":"11111111111","name":"ATTTT"}"}] 有人能提出解决方案吗?您想做的只是: [{"containerType":"Drive","testAtts":"{\"idNbr\":\"11111111111\",\"name\":\"ATTTT\"}"}] 而不是 jsonMap.put("testAtts", new JSONObject(testAttMap))

实际结果:

[{"containerType":"Drive","testAtts":"{"idNbr":"11111111111","name":"ATTTT"}"}]

有人能提出解决方案吗?

您想做的只是:

[{"containerType":"Drive","testAtts":"{\"idNbr\":\"11111111111\",\"name\":\"ATTTT\"}"}]
而不是

jsonMap.put("testAtts", new JSONObject(testAttMap));

斜杠之所以存在,是因为您要转义双引号

您要做的只是:

[{"containerType":"Drive","testAtts":"{\"idNbr\":\"11111111111\",\"name\":\"ATTTT\"}"}]
而不是

jsonMap.put("testAtts", new JSONObject(testAttMap));

斜杠之所以存在,是因为您要转义双引号

jsonMap.put(“testAtts”,新的JSONObject(testAttMap.toString())-您正在显式地将对象
转换为字符串
,我不清楚为什么会出现意外的输出。使用字符串、对象映射并简单地将
testAtts
键指定给另一个映射的值?可能重复
jsonMap.put(“testAtts”,新的JSONObject(testAttMap.toString())-您正在显式地将对象
转换为字符串
,我不清楚为什么会出现意外的输出。使用字符串、对象映射并简单地将
testAtts
键指定给另一个映射的值?可能重复您所说的内容,为什么会使用字符串值失败字符串值不会失败(它不会出错,只是有一个不是OP想要的结果),但您建议的是一个
JSONObject
值。您真的尝试过这个吗?
jsonMap
被声明为
HashMap jsonMap
,这可能就是OP调用
toString()的原因
在它上面。我不知道为什么它被否决。删除
toString
调用是正确的一步。需要的另一步是将
jsonMap
的类型更改为可以存储为值字符串和其他对象的类型,所以我想到了
Map
(因为我们不想使用原始类型)。因为您可能正在查看内部对象
testAttMap
,而不是外部对象
jsonMap
,后者也是
HashMap
,但您仍试图将
JSONObject
值放入其中?这就是类型的工作方式。不确定您在说什么,为什么它会因字符串值而失败带有字符串值的il(它不会出错,只是有一个不是OP想要的结果),但您建议的是一个
JSONObject
值。您确实尝试过吗?
jsonMap
声明为
HashMap jsonMap
,这可能是OP调用
toString()的原因
在它上面。我不知道为什么它被否决。删除
toString
调用是正确的一步。需要的另一步是将
jsonMap
的类型更改为可以存储为值字符串和其他对象的类型,所以我想到了
Map
(因为我们不想使用原始类型)。因为您可能看到的是内部对象
testAttMap
,而不是外部对象
jsonMap
,后者也是
HashMap
,但您仍试图将
JSONObject
值放入其中?这就是类型的工作方式。