我想从下面的字符串中获取逗号分隔的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 :(得分: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(',');
答案 1 :(得分:0)
正如所指出的,在你的例子中,这不是一个字符串。一些引号丢失了。
无论如何,请查看@dystroy的答案,但我认为您正在处理JSON对象,您应该使用json解析器(如果必须,甚至可以使用javascripts raw eval),然后将组件作为对象属性获取和数组。
答案 2 :(得分:0)
您应该使用JSON的任何Javascript解析器api将给定的字符串解码为键和后续值。正如'Miquel'所提到的,jQuery有一个
答案 3 :(得分: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
var IDs = tempString.match(/([0-9] +)/ gi);