2017-10-13 156 views
1

我的EJB响应喜欢这样的:如何使用AJAX AJAX响应字符串转换成JSON

"{'Active':{'123','456','789'},'Inactive':{'111','222','333'}}" 

我想上面的字符串,以JSON对象转换。 将在JavaScript中使用JSON对象来绘制地图。

或者

我希望同样的字符串被转换象下面在JavaScript:

变种活性= [ “123”, “456”, “789”]; var inactive = [“111”,“222”,“333”];

注:我在JS中使用AJAX。

+1

[没有没有这样的事,作为一个 “JSON对象”(HTTP ://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/),你只需要一个对象。此外,您显示的响应字符串不是有效的JSON,所有单引号字符都需要双引号 - 如果您修复了可以使用'JSON.parse()'方法。 – nnnnnn

+0

响应只是该格式的字符串。需要转换为JSON – Murugesh

+0

我的观点是不要发明自己的非标准数据传输格式,请修复您的EJB,以便使用有效的JSON字符串进行响应,以便JS可以使用'JSON.parse( )'。所以修正引号字符就像我已经说过的,而且我只注意到内部的'''''''似乎是定义数组,所以它们应该是'['和']'。 – nnnnnn

回答

1
var jsonString = JSON.parse(response); 

response是你从阿贾克斯REQ得到什么(JSON字符串),并jsonString是你想要的东西

+1

请注意,问题中显示的响应字符串不是有效的JSON。 – nnnnnn

+0

然后这将是一个解析错误,它只会在响应是JSON类型的字符串时才起作用。 –

-1
let JSON_Str = "{'Active':{'123','456','789'},'Inactive':{'111','222','333'}}" 

Obj = JSON.parse(JSON_Str) 
+0

考虑到字符串不是JSON,这会给出解析错误。 – nnnnnn

+0

仅发布2行代码,并未解释此代码如何帮助OP解决问题并不很有用。请阅读[我如何写出一个好的答案?](https://stackoverflow.com/help/how-to-answer)并尝试发布更详细的答案。 – EhsanT

+0

'这段代码如何帮助OP' - 答案是*不是一位* –