Java中的JSON解码

Java中的JSON解码,java,php,json,Java,Php,Json,我得到一些JSON代码如下: {"1":{"id":"1","Vorname":"x","Nachname":"y","MaleFemale":0,"interests":[]}, "2":{"id":"2","Vorname":"x","Nachname":"y","MaleFemale":1,"interests":[]}, ... {"contacts": [{"user.id":"1","Vorname":"x","Nachname":"y","MaleFemale":1},

我得到一些JSON代码如下:

{"1":{"id":"1","Vorname":"x","Nachname":"y","MaleFemale":0,"interests":[]},
 "2":{"id":"2","Vorname":"x","Nachname":"y","MaleFemale":1,"interests":[]},
 ...
{"contacts": [{"user.id":"1","Vorname":"x","Nachname":"y","MaleFemale":1},
              {"user.id":"2","Vorname":"x1","Nachname":"y2","MaleFemale":0}]}
从我的PHP脚本。你能告诉我如何用Java解码这种格式吗? 我只举了一些例子,你必须有这样的格式:

{"1":{"id":"1","Vorname":"x","Nachname":"y","MaleFemale":0,"interests":[]},
 "2":{"id":"2","Vorname":"x","Nachname":"y","MaleFemale":1,"interests":[]},
 ...
{"contacts": [{"user.id":"1","Vorname":"x","Nachname":"y","MaleFemale":1},
              {"user.id":"2","Vorname":"x1","Nachname":"y2","MaleFemale":0}]}
所以区别在于,在第一个给定的代码中没有“主节点”。在第二个给定代码中有一个(“联系人”)。我需要这个节点吗?我尝试了这么多,但我不知道如何解决这个问题


非常感谢。

我认为你应该使用jackson mapper。以下是一个链接:

使用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"));
            }
        }

    }
}

您可以从下载Jackson库。

请添加当前不工作的代码。答案可能取决于你使用什么进行JSON反序列化你使用了什么?你有JSON反序列化库吗?检查这个链接:嗨,谢谢你的帖子,但我绝对不知道如何从这个网站下载库。你也能帮我吗?你是在使用maven还是其他的构建系统?对不起,我终于找到了。我尝试了你的代码并发布了我的结果。当我想要编译时,它会在Android Studio中抛出此错误:错误:(491,36)错误:无法访问com.fasterxml.jackson.core.ObjectCodec的ObjectCodec类文件找不到你在类路径中添加了哪些库?我认为第一个应该足够了,它包含ObjectCodec类。但可能你还得加上另外两个。