1
ffw5b7 OP 不想从数据源写 sql 的时候主观直接处理了,
或者说还有类似的需求不是转换, 目的是如题:获取嵌套多层对象的所有属性对象 |
2
clf 2020-09-05 13:02:06 +08:00 via Android
不明白这样的应用场景是什么。数值的优势就在于可进行算数运算,转换为 x.xx 万后应该就只剩下了显示作用。而显示什么样子,应该让前端处理。接口下发 x.xx 万的数据还会恶心到前端,前端做数据判断还需要去转换为数值?
后端如果需要用到 x.xx 万这样的数据,那就自己写个 get 方法给需要的属性做转换就行了。 |
4
clf 2020-09-05 13:06:52 +08:00 via Android
如果是获得嵌套多层属性对象这个单一需要的话,就是数据结构的事情了,把树形结构转化为数组或者单层树形结构。
我之前写过一个方法是解析 json 的。嵌套 n 层的数据也可以通过 a.b.c[1].d 这样的 key 值获取,同时可以用 map 的 entryset 遍历。本质上就是数据结构的转换。 |
5
clf 2020-09-05 13:11:57 +08:00 via Android
@ffw5b7 我个人很讨厌后端过度封装数据。比如时间,我更希望传递我时间戳。数值的显示转换对我来说只是对 text 做一个修改,value 还是数值,这样子我前端计算会方便很多。
|
6
ffw5b7 OP @lychs1998 划分职责的原理还是不懂,前端不擅长处理复杂的业务判断? 或是是性能?客户端性能优先? 数据结构的问题,之前参考 fastJson,深拷贝,有点吃力,就想搜搜 copy 。哈哈哈
|
7
clf 2020-09-05 13:28:32 +08:00
获得嵌套对象所有属性值参考我之前写过的这个类(写的比较烂): https://github.com/lychs1998/CatMock/blob/master/src/main/java/cn/myzju/mock/CatContainer.java
但不要引入我写的这个依赖,我设计的时候是为后端 mock 框架填入值设计的,所以只考虑了解析,没考虑还原对象。而且同个包下的 CatMock 对象更是会引入 js 文件和 graalvm 。 一个思路:把 json 转化为 jsonString,然后对需要转换的字段直接处理,最后把处理了的 jsonString 用 jackson 转换为对象。 |
8
Cbdy 2020-09-05 16:11:50 +08:00 via Android
自己手写一下也就十几二十行代码,没有必要找现成的库吧
|
9
napsterwu 2020-09-05 16:36:06 +08:00 via iPhone
手写一下基本都是 split(‘.’)迭代一下,再处理一下 edge case,没几行代码。
|