我得到了一些像这样的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")。我需要这个节点吗?我尝试了很多,但我不知道如何解决这个问题。
非常感谢。
答案 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下载杰克逊图书馆。