Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中读取Json字符串_Java_Json - Fatal编程技术网

如何在Java中读取Json字符串

如何在Java中读取Json字符串,java,json,Java,Json,我需要集成一些来自json的数据,我能够将json文件保存为字符串,但我无法读取我需要的格式。 从下面的json中,我需要获得firstname和lastname,以便将其保存在Contact类型的java对象上 { "form-submissions": [ { "portal-id": 62515.0, "page-title": "Testing!", "title": "Test Form", "timestamp": 1.33

我需要集成一些来自json的数据,我能够将json文件保存为字符串,但我无法读取我需要的格式。 从下面的json中,我需要获得firstname和lastname,以便将其保存在Contact类型的java对象上

{
  "form-submissions": [
    {
      "portal-id": 62515.0,
      "page-title": "Testing!",
      "title": "Test Form",
      "timestamp": 1.33830544E12,
      "conversion-id": "bc65112f47c2469e90f5951213a66110",
      "page-url": "http: //www.example.com/test/Default.aspx?RewriteStatus\u003d1",
      "page-id": "807831",
      "form-id": "4320"
    }
  ],
  "identity-profiles": [
    {
      "identities": [
        {
          "timestamp": 1.33830544E12,
          "type": "LEAD_GUID",
          "value": "8a5c2ed0379938020137993893d40013"
        },
        {
          "timestamp": 1.33830544E12,
          "type": "EMAIL",
          "value": "test@example.com"
        }
      ],
      "vid": 71.0
    },
    {
      "identities": [],
      "vid": 59.0
    }
  ],
  "properties": {
    "lifecyclestage": {
      "value": "lead",
      "versions": [
        {
          "timestamp": 1.338305450005E12,
          "selected": false,
          "source-label": "None",
          "value": "lead",
          "source-type": "MIGRATION",
          "source-id": "None"
        }
      ]
    },
    "hs_analytics_first_timestamp": {
      "value": "1337815228837",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "1337815228837",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    },
    "hs_analytics_source_data_1": {
      "value": "",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    },
    "firstname": {
      "value": "Test",
      "versions": [
        {
          "timestamp": 1.338305440003E12,
          "selected": false,
          "source-label": "FirstName",
          "value": "Test",
          "source-type": "FORM",
          "source-id": "bc65112f47c2469e90f5951213a66110"
        }
      ]
    },
    "hs_analytics_last_url": {
      "value": "http: //www.example.com/test/",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "http: //www.example.com/test/",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    },
    "hs_analytics_source_data_2": {
      "value": "",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    },
    "lastname": {
      "value": "Contact",
      "versions": [
        {
          "timestamp": 1.338305440003E12,
          "selected": false,
          "source-label": "LastName",
          "value": "Contact",
          "source-type": "FORM",
          "source-id": "bc65112f47c2469e90f5951213a66110"
        }
      ]
    },
    "createdate": {
      "value": "1338305440000",
      "versions": [
        {
          "timestamp": 1.338305440003E12,
          "selected": false,
          "source-label": "None",
          "value": "1338305440000",
          "source-type": "FORM",
          "source-id": "bc65112f47c2469e90f5951213a66110"
        }
      ]
    },
    "hs_analytics_num_page_views": {
      "value": "3",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "3",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    },
    "hs_analytics_last_timestamp": {
      "value": "1337815238097",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "1337815238097",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    },
    "phone": {
      "value": "555-555-2262",
      "versions": [
        {
          "timestamp": 1.338305440003E12,
          "selected": false,
          "source-label": "Phone",
          "value": "555-555-2262",
          "source-type": "FORM",
          "source-id": "bc65112f47c2469e90f5951213a66110"
        }
      ]
    },
    "hs_analytics_last_referrer": {
      "value": "http: //www.example.com/test",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "http: //www.example.com/test",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    },
    "field_text_7": {
      "value": "62515",
      "versions": [
        {
          "timestamp": 1.338305440003E12,
          "selected": false,
          "source-label": "HubSpotPortal(Hub)ID",
          "value": "62515",
          "source-type": "FORM",
          "source-id": "bc65112f47c2469e90f5951213a66110"
        }
      ]
    },
    "hs_analytics_first_referrer": {
      "value": "",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    },
    "hs_analytics_first_url": {
      "value": "http: //www.example.com/support/",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "http: //www.example.com/support/",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    },
    "hs_analytics_num_visits": {
      "value": "1",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "1",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    },
    "field_text_9": {
      "value": "test",
      "versions": [
        {
          "timestamp": 1.338305440003E12,
          "selected": false,
          "source-label": "CustomFormQuestion",
          "value": "test",
          "source-type": "FORM",
          "source-id": "bc65112f47c2469e90f5951213a66110"
        }
      ]
    },
    "field_text_8": {
      "value": "about20",
      "versions": [
        {
          "timestamp": 1.338305440003E12,
          "selected": false,
          "source-label": "HowManyHubSpotUsers?",
          "value": "about20",
          "source-type": "FORM",
          "source-id": "bc65112f47c2469e90f5951213a66110"
        }
      ]
    },
    "ipaddress": {
      "value": "71.172.15.18",
      "versions": [
        {
          "timestamp": 1.338305440003E12,
          "selected": false,
          "source-label": "None",
          "value": "71.172.15.18",
          "source-type": "FORM",
          "source-id": "bc65112f47c2469e90f5951213a66110"
        }
      ]
    },
    "email": {
      "value": "test@example.com",
      "versions": [
        {
          "timestamp": 1.338305440003E12,
          "selected": false,
          "source-label": "Email",
          "value": "test@example.com",
          "source-type": "FORM",
          "source-id": "bc65112f47c2469e90f5951213a66110"
        }
      ]
    },
    "hs_analytics_source": {
      "value": "DIRECT_TRAFFIC",
      "versions": [
        {
          "timestamp": 1.337817901004E12,
          "selected": false,
          "source-label": "None",
          "value": "DIRECT_TRAFFIC",
          "source-type": "ANALYTICS",
          "source-id": "None"
        }
      ]
    }
  },
  "vid": 71.0
}
我试图使用
com.google.gson.gson
;要直接匹配值但不匹配运气,请执行以下操作:

CrmContacts contact = gson.fromJson(jsonString, CrmContacts.class);
CrmContacts类:

public class CrmContacts {
    private String lastname;
    private String firstname;

    public String getLastname() {
        return lastname;
    }
    public void setLastname(String lastname) {
        this.lastname = lastname;
    }
    public String getFirstname() {
        return firstname;
    }
    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }
}

您需要将JSON字符串的精确副本创建到Java POJO类或
Map


下面是从
properties
获取
firstname
lastname
的简单代码

Type type = new TypeToken<Map<String, Object>>() {}.getType();

// JSON string to Java Map object
Map<String, Object> data = new Gson().fromJson(jsonString, type);
Map<String,Object> properties=(Map<String,Object>)data.get("properties");

Object lastname = properties.get("lastname");
Object firstname = properties.get("firstname");

// convert Object into JSON string back
System.out.println(new Gson().toJson(lastname));
Type Type=new-TypeToken(){}.getType();
//Java映射对象的JSON字符串
Map data=new Gson().fromJson(jsonString,type);
映射属性=(Map)data.get(“属性”);
Object lastname=properties.get(“lastname”);
Object firstname=properties.get(“firstname”);
//将对象转换回JSON字符串
System.out.println(新的Gson().toJson(lastname));

您需要花一些时间阅读

firstname
lastname
对象不是
字符串
。你在期待什么?你怎么可能自动映射呢?我建议你用jsonPath编写自己的转换器。@Jaiwo99实际上,Gson非常擅长自动将JSON映射到Java。但是,这些对象实际上并不匹配。OP:如果你想继续使用Gson,请帮助它理解如何解析你的JSON。@keyser我没有说不可能自动将JSON映射到java对象,在他的情况下,不可能将此JSON映射到他期望的对象…@Jaiwo99是的,我知道,我只是不想让OP得到错误的印象。你把他从格森身边引开了。