2013-02-08 43 views
2

我想从下面的字符串中获取逗号分隔的ID和类型。如何从提到的字符串中获取逗号分隔值

我尝试通过拆分,但需要多个拆分来获取所需的结果。

请建议一种有效的方式来获取所需的输出,如使用js/jquery的1234,4321

var tempString= 
'[{"id":"1234","desc":"description","status":"activated","type":"type","name":"NAME"}, 
    {"id":"4321","desc":"description1","status":"inactivated","type":"type","name":"NAME1"}]'; 
+0

想要的结果是什么? – 2013-02-08 16:37:26

+0

逗号分隔的ID像1234,4321 – sandy 2013-02-08 16:37:52

+0

这不是一个字符串。 – SLaks 2013-02-08 16:39:27

回答

3

要获得"1234,4321",你可以做

var ids = tempString.map(function(v){return v.id}).join(','); 

如果你想与IE8兼容的,那么你可以做

var ids = $.map(tempString, function(v){return v.id}).join(','); 

以下问题编辑:

如果tempString不是数组,但真是一个JSON字符串,那么你会做

var ids = $.map(JSON.parse(tempString), function(v){return v.id}).join(','); 
+0

感谢您提供干净,快速和整洁的解决方案。 – sandy 2013-02-08 16:46:22

0

正如指出的那样,这不是在你的例子一个字符串。一些引号丢失了。

无论如何,看看@ dystroy的答案,但我认为你正在处理JSON对象,并且你应该使用json解析器(如果必须的话,甚至是javascript的原始eval),然后将你的组件作为对象属性和数组。

退房jquery's parseJSON

0

您应该使用任何JavaScript分析器API的JSON给定的字符串转换成键和后续值进行解码。正如“米克尔”中提到,jQuery有一个

0

第一关你什么上面是不是一个字符串,它是对象的数组。

BUT

,如果它是一个字符串(像这样)

var tempString = '[{"id":"1234","desc":"description","status":"activated","type":"type","name":"NAME"}] 

[{ “ID”: “4321”, “降序”: “内容描述”, “状态”: “灭活的” “类型”: “类型”, “名称”: “NAME1”}]';

然后你会想使用类似.match(); https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/match

变种的ID = tempString.match(/([0-9] +)/ GI);

相关问题