===== 2016 年 8 月 20 日更新 =====
最新バージョンの fastjson は
Dictionary<string, ?>
タイプを正しく処理できるようになりました。私の問題は解決しました。=============================
Dapper からのクエリ結果をシリアル化するために fastjson を使用しています。DB のテーブルには次のようなデータがあります。
id | name | price
1 | x | 100
2 | y | 200
....
そして私が
using Dapper;
using fastJSON;
// ....
JSON.Parameters.KVStyleStringDictionary = false;
// ....
result = JSON.toJSON(conn.Query("SELECT * FROM tableX"));
結果を次のようにしたい:
[{"id":1,"name":"x","price":100},{"id":2,"name":"y","price":200},...]
ただし、実際の結果は次のように出力されます。
[[{"Key":"id","Value":1},{"Key":"name","Value":"x"},{"Key":"price","Value":100}],
[{"Key":"id","Value":2},{"Key":"name","Value":"y"},{"Key":"price","Value":200}]...]
冗長に見える多くのキーと値のペアが生成されます。
正しい結果を得る方法はありますか?
または、別の JSON シリアライザーに切り替える必要がありますか?
========== 更新 ==========
makubex88 の回答は、テーブルをマッピングするカスタマイズされたクラスを作成しconn.Query<myClass>
、正しい json を取得するために使用できることを示していますが、このシナリオでは機能しますが、理想的な json の結果を得るには、DB 内のすべてのテーブルに対して何百ものクラスを作成する必要があるようです。私にとっては確かに疲れる仕事です。(とにかくありがとう:P)
代替ソリューションは非常に高く評価されます!