java 转换json_java-转换JSON结构

对于Java,您可以使用JSON.org中的json-simple.正如其他人所说,我认为没有“聪明”的方法可以做到,您只需要将JSON转换为真实对象,进行操作并转换回即可. (见下文)另外,我相信您必须引用文字字符串,例如. “ task1”,“ label”,“ data”为其有效的JSON(或者,如果您不接受,则json-simple不会接受)

package com.another;

import java.util.Arrays;

import java.util.HashMap;

import java.util.Map;

import org.json.simple.JSONArray;

import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;

import org.json.simple.parser.ParseException;

public class NewClass {

public static final String inputString = "[ [\"task1\", 10, 99], [\"task2\", 10, 99], [\"task3\", 10, 99], [\"task1\", 11, 99], [\"task2\", 11, 99], [\"task3\", 11, 99]]";

public static void main(String[] args) throws ParseException {

JSONArray obj = (JSONArray) new JSONParser().parse(inputString);

Map output = new HashMap();

for (Object o : obj) {

JSONArray item = (JSONArray) o;

Object title = item.get(0);

Object first = item.get(1);

Object second = item.get(2);

JSONObject dest = output.get(title);

if (dest == null) {

dest = new JSONObject();

output.put(title, dest);

dest.put("label", title);

dest.put("data", new JSONArray());

}

JSONArray data = new JSONArray();

data.add(first);

data.add(second);

((JSONArray) dest.get("data")).add(data);

}

String outputString = JSONArray.toJSONString(Arrays.asList(output.values().toArray()));

System.out.println(outputString);

}

}

这是在JS中

var inputString = "[ [\"task1\", 10, 99], [\"task2\", 10, 99], [\"task3\", 10, 99], [\"task1\", 11, 99], [\"task2\", 11, 99], [\"task3\", 11, 99]]";

var obj = JSON.parse(inputString);

var output = new Object();

for (var i in obj) {

var item = obj[i];

var title = item[0];

var first = item[1];

var second = item[2];

var dest = output[title];

if (dest == null) {

dest = {

"label" : title,

"data": new Array()

};

output[title] = dest;

}

dest.data.push([first, second]);

}

var outputArray = new Array();

for (var t in output) {

outputArray.push(output[t]);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值