===== 更新于 2016 年 8 月 20 日 =====
fastjson 的最新版本可以正确处理
Dictionary<string, ?>
类型,我的问题已经解决。=============================
我正在使用 fastjson 序列化 Dapper 查询结果,数据库中的表格数据如下:
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"));
I want the result to be:
[{"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结果,这对我来说确实是一项繁琐的工作。(无论如何感谢)
非常感谢任何替代方案!
<Item>
;我也将ToList()
更改为dapper的AsList()
- 在这种情况下可以避免分配/复制。 - Marc Gravell