2013-02-08 79 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);

相關問題