You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
换成这样
this_properties_value = ''
if t == 'int':
this_properties_value = '0'
if t == 'bool':
this_properties_value = 'false'
if t == 'Object':
this_properties_value = 'null'
if t == 'String':
this_properties_value = "''"
换成这样
this_properties_value = ''
if t == 'int':
this_properties_value = '0'
if t == 'bool':
this_properties_value = 'false'
if t == 'Object':
this_properties_value = 'null'
if t == 'String':
this_properties_value = "''"
Activity
debuggerx01 commentedon Nov 5, 2018
个人理解这种动态key的json数据是不好用jsonBean的方式进行处理的,因为bean本质上类似于预定义协议,必须要有明确的字段,而这种key不确定(猜测数据源是不是elasticsearch或者mangodb这种)的情况一来没法生成有意义的字段,二来写代码的时候也不好调用。
这种情况我以前开发中也遇到过(因为后台用了elasticsearch/mangodb直接返回的数据),我能想到的解决方案有两种:
1.让后台改返回的数据结构,或者客户端接收到数据后先用默认的json解析器得到原始map,然后遍历出KV,把key名添加到valueObject中再添加到数组List中,从而实现Map到List的转换。
假设原本是:
处理后应该是:
然后就可以继续用jsonBean的转换工具来进行开发了。
2.还是需要先像第一种方式那样进行Map的KV遍历,然后直接用得到的valueObject传到bean.fromJSON()构造进行对象创建,也就是局部序列化。依据逻辑需求,这种方式会更加灵活。
xuexin commentedon Nov 5, 2018
疏忽了,我应该上传更完整的json~~
这一段只是另外一长串json的一部分,这个格式是无法修改的
我这里只是希望工具可以支持设置部分元素保留map的格式,方便后续自行处理
现在这段json在工具里面基本没法正常转换了(特殊字符,以及每个都会被认为是一个类)
debuggerx01 commentedon Nov 11, 2018
@xuexin 最近确实太忙了没空修改。。暂时可以通过先把jsonString中不想处理的部分直接替换成null来解决,后面有时间我考虑下能不能通过设置特定的className并阻止下探解析来优化这个操作。
xuexin commentedon Nov 12, 2018
我这边现在直接用map的形式处理了,我不急,你慢慢来~~
debuggerx01 commentedon Nov 16, 2018
@xuexin 创建了一个dev分支,可以通过对象类型下拉框选择为Map而不是输入类型名称,得到的对象就是不经解析的Map<String, dynamic>了,应该可以满足你这个需求,你先试试有没有问题。
20156284 commentedon Jan 2, 2019
能否把初始化也给加上,不行的话只能手动去修改了
业务需求是这样的
我先定义一个类 这个类必须不为空 然后 属性不为空 直接给flutter 相对应的地方放上 这个类的某个属性
然后再请求再刷新 这样就完美
但是目前是 我不知道用 那个来初始化这个类,然后 我直接在flutter上去使用的时候 报错 比如说 这个类是空的 这个类的某个属性是空的 运行失败
所以 看看您能否加上一个 初始化这样的函数?
20156284 commentedon Jan 3, 2019
把您的 tools.py 改了一下
换成这样
this_properties_value = ''
if t == 'int':
this_properties_value = '0'
if t == 'bool':
this_properties_value = 'false'
if t == 'Object':
this_properties_value = 'null'
if t == 'String':
this_properties_value = "''"
以后生成的 xxx.fromParams(); 具有重载的属性
debuggerx01 commentedon Jan 3, 2019
你觉得这样符合你的需求那就自己这样用好了,不过我并不认为在模板代码里加默认值是个好的选择,原因在 #12 的讨论中有表达。
另外感觉你的问题应该和这个issue没什么关系吧?可以新开讨论的
xuexin commentedon Jan 3, 2019
@debuggerx01 dev分支已经满足我当时的需求了
不过我这边的现状已经逼得我不格式化json了,直接map吧,太多东西要处理了......