如何从 JSchema/ Map JsonObjects 获取父对象名称到新父对象
Posted
技术标签:
【中文标题】如何从 JSchema/ Map JsonObjects 获取父对象名称到新父对象【英文标题】:How to get parent object name from JSchema/ Map JsonObjects to new parent 【发布时间】:2021-12-14 00:30:10 【问题描述】:我有一个场景,我从多个 json 文件中读取数据并将它们映射到某种 Json 格式。
e.g. file1, file2, file 3
json输出:
"parentfile1":"file1content",
"parentfile2":"file2content",
"parentfile3" : "file3content" and so on.
我正在尝试将读取的文件中的输入直接映射到有效的 json 格式,以避免读取一个 jsonObj 中的所有文件,将其映射到一个 Object(class) 并在新对象中添加每个参数以创建 jsonoutput .
我还想在合并这些 json 内容时处理共享的可变状态,所以我使用 lock(obj),执行此映射的方法是异步方法。
我正在使用 JSchema 来生成预期的 json 格式的模式,:
-
检查此架构中的对象是否包含密钥(在文件中),(不确定这是否可能??)
从架构中获取它的父名称,并在一个 JsonObject 中添加带有值(文件内容 jsonobject)的父名称和
最后将2中的JSonObject反序列化为预期的文件输出。
不确定这是否是最好的方法。是否有任何其他建议/最佳实践来解决这种情况?
【问题讨论】:
能否请您与我们分享实现所描述算法/解决方案的代码? 【参考方案1】:我想出了一种方法。
-
使用 JSchema 生成架构
获取此模式的属性 -> 返回 IDictionary,字符串作为键-> 属性名称和 JSchema 作为值(键的子参数/属性)
遍历字典,获取2中JSchema的properties.value
循环遍历 3-> 键列表中返回的列表
在字典中添加父键作为值,子键作为键。
现在在父JObject中添加obj(文件内容)时,合并newJObject(parentkey, child object)
【讨论】:
以上是关于如何从 JSchema/ Map JsonObjects 获取父对象名称到新父对象的主要内容,如果未能解决你的问题,请参考以下文章
flutter - 如何在Dart/Flutter中将某些元素从一个Map复制到新Map中?
unordered_map 迭代器指向 end(),如何从 unordered_map 中检索键?