2017-05-19 6 views
1

にSQLクエリでフィールドを変換私はこのようなクエリがある:帆:JSON

このような何かを結果として返す
var sql = "select * from a left join b where a.id in (select field from c)"; 
    Model.query(sql, function (err, result) { 
     return res.json({data:result}); 
    }); 

{ 
    "data": [ 
    { 
     "field1": "[\"element 1\", \"element 1\"]", 
     ... 
    } 
    ] 
} 

あなたがその"[\" 要素を見ることができます1 \ "、\" element 1 \ "]"は文字列で、私はそれを気に入らない。私はそれらをbo jsonにしたい。結果は次のようになります。

{ 
    "data": [ 
    { 
     "field1": [\"element 1\", \"element 1\"], 
     ... 
    } 
    ] 
} 

どのように達成できますか?

+0

誰かが、各要素のfield1' 'にしてください – Tuan

+0

使用' JSON.parse'を私を助けて。 – Sangharsh

答えて

1

クエリがmany-to-manyリレーションのようなものを表す場合は、.populate()関数を参照することができます。

そうしないと、あなたはそうのようにそれを行うことができます:

var data = [{ 
 
    "field1": "[\"element 1\", \"element 2\"]", 
 
    "field2": "[\"element 1\", \"element 2\"]", 
 
}]; 
 

 
var parsedData = []; 
 

 
data.forEach(function(item, index) { 
 
    var parsed = {}; 
 

 
    for (var fieldName in item) { 
 
    try { 
 
     parsed[fieldName] = JSON.parse(item[fieldName]); 
 
    } catch (e) { 
 
     parsed[fieldName] = []; 
 
    } 
 

 
    } 
 

 
    parsedData.push(parsed); 
 

 
}); 
 

 
console.log(parsedData);

関連する問題