JSON:将对象转换为数组

时间:2015-08-07 05:48:28

标签: java arrays json type-conversion

我是第一次使用JSON,我需要接收JSON元素列表并检查这些元素的代码并将它们从对象转换为数组。例如。

  

{       “关键”:“我的钥匙”,       “价值”:“我的价值”,       “元素”:“x”   }

应该成为:

  

{       “关键”:“我的钥匙”,       “价值”:“我的价值”,       “元素”:[“x”]   }

解决方案必须与java 1.6兼容。 有人可以推荐我使用哪个解析器来实现这个尽可能简单吗?示例代码是什么样的?

1 个答案:

答案 0 :(得分:1)

我不知道我是否理解正确,但也许这个例子可以帮到你。

1)你可以使用jackson与json一起工作,你必须下载2个罐子:

http://central.maven.org/maven2/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar

http://central.maven.org/maven2/org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar

2)创建下一个类:

第一堂课是接收你的输入

public class Input {

    private String key;
    private String value;
    private String element;

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String getElement() {
        return element;
    }

    public void setElement(String element) {
        this.element = element;
    }
}

第二个类包含您想要的元素数组

public class Output {
    private String key;
    private String value;
    private String[] element;

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String[] getElement() {
        return element;
    }

    public void setElement(String[] element) {
        this.element = element;
    }
}

创建第三个用于应用转换并运行程序

import org.codehaus.jackson.map.ObjectMapper;

public class TestJson {

    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();

        String originalString ="{\"key\":\"my key\",\"value\":\"my value\",\"element\":\"X\"}";
        System.out.println(" Input: " + originalString);

        Input input = mapper.readValue(originalString, Input.class);
        String[] element = {input.getElement()};

        Output output = new Output();
        output.setKey(input.getKey());
        output.setValue(input.getValue());
        output.setElement(element);

        String result = mapper.writeValueAsString(output);
        System.out.println("Result: " + result);

    }
}

运行TestJson后,您将看到预期的结果

 Input: {"key":"my key","value":"my value","element":"X"}
Result: {"key":"my key","value":"my value","element":["X"]}