雖然Javascript數組可以自定義屬性,如要使用此行代碼做:
result['add_key'] = 'abcdd';
JSON.stringify()
(因此res.json()
太)只能將實際的數組元素(不定製屬性)生成的JSON中。所以,如果result
是一個數組,那麼這就是爲什麼該屬性不會顯示在生成的JSON中。
實際上,JSON文本格式只對數組的JSON格式有數組元素。有沒有地方像你的['add_key
]屬性定期的定製屬性。該屬性必須位於JSON中顯示的普通對象上。
在section 7 of the JSON specification其中陣列被描述,它 清楚地表明,對於數組中的唯一的JSON表示是 數組元素本身(由逗號分隔)。數組的表達式中沒有屬性名稱/值對的位置。
你沒有顯示正是你想要得到的JSON是什麼樣子,但也有其他一些方法,你可以代表add_key
屬性和值。您可以在財產轉移到response
對象:
connection.modal.find({ 'id' : '2' }, function (err, result) {
var response = {};
response['add_key'] = 'abcdd';
response['success'] = true;
response['result'] = result;
response['msg'] = 'Result fetched';
res.json(response);
});
你可以把結果到它自己的對象,該對象可能會對它的add_key
屬性:
connection.modal.find({ 'id' : '2' }, function (err, result) {
var response = {};
var resultContainer = {};
resultContainer['add_key'] = 'abcdd';
resultContainer['result'] = result;
response['success'] = true;
response['result'] = resultContainer;
response['msg'] = 'Result fetched';
res.json(response);
});
僅供參考,不這樣做必須通常使用括號語法來設置屬性。你也可以做到這一點(很多找了一下清潔劑):
connection.modal.find({ 'id' : '2' }, function (err, result) {
var response = {};
response.add_key = 'abcdd';
response.success = true;
response.result = result;
response.msg = 'Result fetched';
res.json(response);
});
你必須使用括號語法是,如果屬性名是一個字符串變量或唯一的時間,如果它包含AREN某些字符」 t允許在點語法中使用。對於常規字母字符和不在變量中的屬性名稱,可以使用點語法。
「結果」聲明在哪裏?它是什麼類型的變量?如果它是一個數組,那麼當轉換成JSON時,數組的屬性不會枚舉。而且,您在JSON響應中看到了什麼? – jfriend00
它是來自查詢結果的結果數組。 我更新了我的問題。 – iam
'result'的類型是'Array',那麼result''add_key'] ='abcdd''是否正確? – BlackMamba