【发布时间】:2014-04-09 08:53:03
【问题描述】:
我的问题是我将 map 的内容序列化为 JSON。
在输出 (JSON) 中,我有遵循键/名称语法规则的对象。
键是从映射键创建的,名称是从值创建的。
模型示例:
class Storage {
Map<String,String> values = new HashMap<>();
{
map.put("key1","key1");
map.put("key2","key2");
map.put("key3","key3");
}
}
JSON 示例对象:
{
key1=value1,
key2=value2,
key3=value3
}
JSON 架构:
{
"name": "storage",
"description": "Store of key values",
"properties": {
// How can we describe the properties if we do not know the name ?
}
}
问题是我不知道这些值是什么,但我知道它们会是一些。
您能帮我提供架构的完整定义吗?
免责声明:
我知道这个也可以序列化为
{
values: [
{key="key1", value="value1"},
{key="key2", value="value2"},
{key="key3", value="value3"}
]
}
但不想在 JSON 中有数组。
【问题讨论】:
-
听起来你拥有的属性将是一个“key”数组:
“value”: 。 -
我不想有一对数组。我希望将 key=value 作为对象的一部分,该部分有效且易于反序列化。
-
所以您要问的是如何为您不知道先验名称的情况指定名称、值对?做不到。无论如何,您的目标不是能够重构 HashMap 吗?在这种情况下,您将通过一个循环添加 Key, value 。
-
你可能是对的。但是如果有一种有效的方法来序列化和反序列化这样的对象应该可以为它创建一个模式。建议人们可以期待一些内部未定义的对象。
标签: java javascript json jsonschema