【问题标题】:JSON decode in JavaJava中的JSON解码
【发布时间】:2015-01-24 16:13:00
【问题描述】:

我得到一些像这样的 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}]}

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

非常感谢。

【问题讨论】:

标签: java php json


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    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 下载 Jackson 库。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 2015-01-15
    • 2014-07-20
    相关资源
    最近更新 更多