- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
===== UPDATED 8/20/2016 =====
latest version of fastjson can now handle
Dictionary<string, ?>
type correctly, my problem is solved now.=============================
我正在使用 fastjson 序列化来自 Dapper 的查询结果,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 结果,这对我来说确实很累人。 (无论如何感谢:P)
我们将不胜感激任何替代解决方案!
最佳答案
我找到了一个解决方案来处理它(但是它可能会降低一些效率),为了实现这个,我写了我自己的 QueryEx
方法,查询结果中的每一行都是一个 IDictionary 对象:
public IEnumerable<IDictionary> QueryEx(IDbConnection conn, string sql, object argSet = null) {
var result = conn.Query(sql, argSet) as IEnumerable<IDictionary<string, object>>;
return result.Select(r => r.Distinct().ToDictionary(d => d.Key, d => d.Value));
}
和
result = JSON.toJSON(conn.QueryEx("SELECT * FROM tableX"));
// output: [{"id":1,"name":"x","price":100},{"id":2,"name":"y","price":200},...]
原因:fastJSON 只能正确解析 IDictionary 接口(interface),任何通用版本的 IDictionary 都会被解析为键值对列表
关于c# - Dapper 结果到 json(使用 fastjson),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37240633/
Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器。 1、遵循http://json.org标准,为其官方网站收录的参考实现之一。 2、功能qiang打,支持JDK的
1、介绍 2、Maven依赖 3、JSON 3.1、String转JSON 1、JSON对象字符串 转为 JSON对象 2、JSON数组字符串 转为 JSON数组 3、JSON对象字符串 转为 Jav
所以有点像我之前的问题的基础。我正在尝试保存蓝图,它只是游戏对象/实体的一堆设置。我现在将组件(及其设置)存储为 List (IEntityComponent 是任何组件的接口(interface))
我已经开始使用 FastJSON,但在使用过程中遇到了一些问题。我在 Internet 上找不到任何指南或文档,只能在 CodeProject 中找到一些摘录。 例如:我有这门课: [Serializ
Fastjson是一个Java语言编写的高性能功能完善的JSON库。将解析json的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协
实际项目中,我们经常需要使用序列化工具来存储和传输对象。目前用得比较多的序列化工具有:jackson、fastjson、kryo、protostuff、fst 等,本文将简单对比这几款工具序列化和反序
我想要使用 fastJSON 反序列化部分数据失败。 class A { public String a; } 数据 {"a": "a", "b": "b" } 使用 A objectA =
我就废话不多说了,大家还是直接看代码吧~ ? 1
基础部分 1. fastjson 简介 fastjson是一个java库,可用于将java对象转换为json表示。它也可以被用来将一个json字符串转换成一个等效的java对象。在转换速度上应该
第一种情况是从后台拿到数据,进行反序列化,反序列化格式时间:试了一下很多网上的方法,最后发现还是在实体类上面的日期字段加上如下注解,可以完成格式化操作,否则默认就都是时间戳的格式: @JSONFi
一:hibernate-validator 基础 1. 简介: 通过使用注解annotations 给类或者类的属性加上约束(constraint),在运行期检查属性值的合法性. 2. 作用:
===== UPDATED 8/20/2016 ===== latest version of fastjson can now handle Dictionary type correctly, m
我正在尝试在 Kotlin 代码中使用 fastjson 解析对象。但是当我使用 JSON.parseObject 时发生异常,以下是详细信息: 我的数据类: import com.aliba
我无法在现有线程中找到我的问题的答案。我有这个 JSON 字符串: { "Count": 4, "Result:000": { "Score": 4.571,
我正在使用 fastJSON我遇到了一个问题。我无法将 JSON 字符串转换为对象集合。 我认为它可以解决这个问题,但也许我做错了或被误解了。 Handles polymorphic collecti
为了将空字符串转换为“”,引入了FastJsonHttpMessageConverter。 Controller 定义为: 定义的请求模型为:enter image description here
我是一名优秀的程序员,十分优秀!