有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何初始化包含一些对象的数组?

我想用数组中的两个对象创建一个JSON数据

String message = "{ "animal" : [{"name":"alice", "type":"cat"}, {"name":"john", "type":"dog"}, {"name":"peter", "type":"bird"} ] }";

但是这会产生一些错误,并且不能在eclipse中运行

我该怎么解决呢


共 (1) 个答案

  1. # 1 楼答案

    必须用反斜杠转义双引号,如下所示:

    String message = "{ \"animal\" : [{\"name\":\"alice\", \"type\":\"cat\"}, {\"name\":\"john\", \"type\":\"dog\"}, {\"name\":\"peter\", \"type\":\"bird\"} ] }";
    

    Eclipse有一个选项“粘贴到字符串文本时转义文本”(Preferences->Java->Editor->Typing),该选项将多行文本复制粘贴到字符串文本将导致引用新行。请注意,启用此功能后,您仍然需要先写两个引号,然后将文本粘贴到这些引号内

    enter image description here

    添加代码示例以解析json数据

    package com.stackoverflow.answer;
    
    import org.json.JSONArray;
    import org.json.JSONObject;
    
    public class JsonParserExample {
    
        public static void main(String[] args) {
            String message = "{ \"animal\" : [{\"name\":\"alice\", \"type\":\"cat\"}, {\"name\":\"john\", \"type\":\"dog\"}, {\"name\":\"peter\", \"type\":\"bird\"} ] }";
            JSONObject messageJson = new JSONObject(message);
            JSONArray animals = messageJson.getJSONArray("animal");
    
            int n = animals.length();
            for (int i = 0; i < n; ++i) {
                JSONObject animal = animals.getJSONObject(i);
                System.out.println(String.format("animal.%d.name: %s", i, animal.getString("name")));
                System.out.println(String.format("animal.%d.type: %s", i, animal.getString("type")));
            }
        }
    
    }
    

    希望你现在明白了。太晚了。我要去睡觉了。快乐编码