2013-07-16 96 views
2

我使用Node.js和express(3.x)。我必須爲mac客戶端提供一個API,並從提交請求中提取正確的字段。 (使用request.param是強制性的)但是這些字段應該一起組成JSON而不是字符串。將字符串轉換爲JSON對象數組(Node.js)

我:

var obj = { 
     "title": request.param('title'), 
     "thumb": request.param('thumb'), 
     "items": request.param('items') 
    }; 

和request.param( '項目')包含對象的數組,但仍然爲一個字符串:

'[{"name":"this"},{"name":"that"}]' 

我想使它成爲追加它:

var obj = { 
      "title": request.param('title'), 
      "thumb": request.param('thumb'), 
      "items": [{"name":"this"},{"name":"that"}] 
     }; 

而不是

var obj = { 
       "title": request.param('title'), 
       "thumb": request.param('thumb'), 
       "items": "[{\"name\":\"this\"},{\"name\":\"that\"}]" 
      }; 

任何人都可以幫助我? JSON.parse不解析對象數組,只解析有效的JSON。

回答

6

如何:

var obj = JSON.parse("{\"items\":" + request.param('items') + "}"); 
obj.title = request.param('title'); 
obj.thumb = request.param('thumb'); 

JSON.stringify(obj); 
+0

感謝您回答如此(非常)快,做了訣竅 – emiel187

4

也許我失去了一些東西,但是這工作得很好:

> a = '[{"name":"this"},{"name":"that"}]'; 
'[{"name":"this"},{"name":"that"}]' 
> JSON.parse(a) 
[ { name: 'this' }, { name: 'that' } ] 

[email protected]

+0

解析數組也適用於我。不知道OP在做什麼。 – Amberlamps

0

可能是你的老圖書館原型。當我刪除它時,bug已經消失。

您可以嘗試相同的代碼。一旦進入Prototype.js頁面。第二次在沒有庫的新頁面中。

相關問題