私はnodejsを使用してAPIを作成しています。 APIはリクエストを受け取り、JSONで応答しますSQL結果をJSONに変換する適切な方法
たとえば、 私はデータベースにテーブルQUESTIONを持っていますので、エンドポイントhttp://localhost/table/questionへのGETリクエストはJSON形式でテーブルを出力します。
は、しかしそこに行ったときに問題が発生しているテーブルの質問と選択肢を考慮
合流します。質問は多くの選択肢(回答)持っている彼らのでしょう参加
表:私は明白な解決策は、それを解析することで、この
{
"0":{
"QUESTION":"If Size of integer pointer is 4 Bytes what is size of float pointer ?",
"OPTION":{
"A":"3 Bytes",
"B":"32 Bits",
"C":"64 Bits",
"D":"12 Bytes"
}
},
"1":{
"QUESTION":"Which one is not a SFR",
"OPTION":{
"A":"PC",
"B":"R1",
"C":"SBUF"
}
},
"2":{
"QUESTION":"What is Size of DPTR in 8051",
"OPTION":{
"A":"16 Bits",
"B":"8 Bytes",
"C":"8 Bits"
}
},
"3":{
"QUESTION":"Is to_string() is valid builtin function prior to c++11 ? ",
"OPTION":{
"A":"Yes",
"B":"No"
}
}
}
のようなものに変換しようとしています
JOINを使用してクエリを実行し、JSONに変換します。 これを行うための効率的な方法はありますか?
はあなたを行います
テーブル名、フィールド名などは、あなたのアプリケーションで、その後
そして:-)(nodejs)純粋なファンタジーですGROUP_CONCATでこれを達成することができますPHPにアクセスできますか?それは良いjson_encode関数を持っています。 php –
からMySQLに接続するのに十分なほど簡単にあなたのJSONは私には最適ではないようです。数字キーはトップレベルのIDかインデックスのみですか?後者の場合、それを配列で置き換えると、より意味をなさないでしょう。処理自体については、結果をループして、新しい質問を見つけたら新しいオブジェクトを作成するか、質問が既に存在する場合(つまり、最後に見たり追加したものと同じです)OPTIONSに追加してください。あなたは単純なループを使うこともできますし、 'reduce'を使ってそれを行うこともできます。あなたのデータを 'JSON.stringify'するだけです(Expressを使う場合は' res.json'で出力します)。 – jcaron
注:質問にはMySQLではなくPostgreSQLが含まれていれば、配列や集約関数を使用してSQLですべてのことを簡単に行うことができます。 – jcaron