您好我想将json从一种格式转换为另一种格式,如下所示。我的Json格式如下所示 我尝试使用Json.Net插件。但无法找到解决方案
[
{
"bundleKey": "title",
"bundleValue": "Manage cost code",
},
{
"bundleKey": "name",
"bundleValue": "steve",
}]
想要转换为以下格式
[{"title":"Manage cost code"},{"name":"steve"}]
我尝试使用以下链接
答案 0 :(得分:3)
这是一种快速的方法,您可以使用Json.Net将JSON从一种格式转换为另一种格式(假设输入是有效的JSON - 正如您发布的那样,在bundleValues之后还有额外的逗号,我已在下面的代码中删除):
string json = @"
[
{
""bundleKey"": ""title"",
""bundleValue"": ""Manage cost code""
},
{
""bundleKey"": ""name"",
""bundleValue"": ""steve""
}
]";
JArray array = JArray.Parse(json);
JArray outputArray = new JArray();
foreach (JObject item in array)
{
JObject outputItem = new JObject();
outputItem.Add(item["bundleKey"].ToString(), item["bundleValue"]);
outputArray.Add(outputItem);
}
string outputJson = outputArray.ToString(Formatting.None);
Console.WriteLine(outputJson);
输出:
[{"title":"Manage cost code"},{"name":"steve"}]
答案 1 :(得分:1)
private static List convert(List<Map> jsonNode) {
if(jsonNode == null)
return null;
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
for (Map json : jsonNode) {
Map tmp = new HashMap();
putVaue(tmp, json);
result.add(tmp);
}
return result;
}
private static void putVaue(Map<String, Object> result,
Map<String, Object> jsonNode) {
String key = (String) jsonNode.get("bundleKey");
Object value = jsonNode.get("bundleValue");
result.put(key, value);
}