Java中的JSON解码

时间:2015-01-24 16:13:00

标签: java php json

我得到了一些像这样的JSON代码:

{"1":{"id":"1","Vorname":"x","Nachname":"y","MaleFemale":0,"interests":[]},
 "2":{"id":"2","Vorname":"x","Nachname":"y","MaleFemale":1,"interests":[]},
 ...

来自我的PHP脚本。你能告诉我如何在Java中解码这种格式吗? 我只得到一些例子,你必须有这样的格式:

{"contacts": [{"user.id":"1","Vorname":"x","Nachname":"y","MaleFemale":1},
              {"user.id":"2","Vorname":"x1","Nachname":"y2","MaleFemale":0}]}

所以区别在于,在第一个给定的代码中没有"主节点"。在第二个给定的代码中有一个(" contacts")。我需要这个节点吗?我尝试了很多,但我不知道如何解决这个问题。

非常感谢。

2 个答案:

答案 0 :(得分:0)

我认为你应该使用杰克逊映射器。这是一个链接: How to convert Java object to / from JSON (Jackson)

答案 1 :(得分:0)

您可以使用Jackson java库轻松完成此操作。这是一个示例代码段。

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import java.io.IOException;

public class Test {

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

        ObjectMapper mapper = new ObjectMapper();
        // Reading the string to a JSON object
        JsonNode jsonObject = mapper.readTree("{\"contacts\": [{\"user.id\":\"1\",\"Vorname\":\"x\",\"Nachname\":\"y\",\"MaleFemale\":1},\n" +
                "              {\"user.id\":\"2\",\"Vorname\":\"x1\",\"Nachname\":\"y2\",\"MaleFemale\":0}]}");

        //Some basic querying
        JsonNode contacts = jsonObject.get("contacts");
        if (contacts.isArray()){
            ArrayNode contactsArray = (ArrayNode) contacts;
            for (JsonNode contact : contactsArray) {
                System.out.println(contact.get("user.id"));
            }
        }

    }
}

您可以从here下载杰克逊图书馆。