Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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_Resttemplate - Fatal编程技术网

Java 如何从JSON对象获取特定变量?

Java 如何从JSON对象获取特定变量?,java,json,resttemplate,Java,Json,Resttemplate,我试图从其他API获取一些数据,我需要从JSON对象获取StatusCode,但我得到的是null对象 我试图用StatusCode变量创建新类,但我得到了null。 我正在尝试获取以下数据: Data(data=[{"Number":"20450143160505","DateCreated":"11-06-2019 10:14:27","DocumentWeight":0.5,"CheckWeight":0,"SumBeforeCheckWeight":0,"PayerType":"Reci

我试图从其他API获取一些数据,我需要从JSON对象获取StatusCode,但我得到的是null对象

我试图用StatusCode变量创建新类,但我得到了null。 我正在尝试获取以下数据:

Data(data=[{"Number":"20450143160505","DateCreated":"11-06-2019 10:14:27","DocumentWeight":0.5,"CheckWeight":0,"SumBeforeCheckWeight":0,"PayerType":"Recipient","RecipientFullName":"","RecipientDateTime":"","ScheduledDeliveryDate":"12-06-2019","PaymentMethod":"Cash","CargoDescriptionString":"","CargoType":"Parcel","CitySender":"Сокільники","CityRecipient":"Київ","WarehouseRecipient":"Відділення №150 (до 30 кг): вул. Антоновича, 43 (м.\"Олімпійська\")","CounterpartyType":"PrivatePerson","Redelivery":1,"RedeliverySum":"","RedeliveryNum":"","RedeliveryPayer":"","AfterpaymentOnGoodsCost":"","ServiceType":"WarehouseWarehouse","UndeliveryReasonsSubtypeDescription":"","WarehouseRecipientNumber":150,"LastCreatedOnTheBasisNumber":"","LastCreatedOnTheBasisDocumentType":"","LastCreatedOnTheBasisPayerType":"","LastCreatedOnTheBasisDateTime":"","LastTransactionStatusGM":"","LastTransactionDateTimeGM":"","WarehouseRecipientInternetAddressRef":"916c7c93-8460-11e4-acce-0050568002cf","MarketplacePartnerToken":"","DateScan":"12:23 12.06.2019","ClientBarcode":"","SenderAddress":"","RecipientAddress":"","CounterpartySenderDescription":"","CounterpartyRecipientDescription":"","CounterpartySenderType":"Organization","PaymentStatus":"","PaymentStatusDate":"","AmountToPay":"","AmountPaid":"","WarehouseRecipientRef":"916c7c94-8460-11e4-acce-0050568002cf","DocumentCost":40,"AnnouncedPrice":"","OwnerDocumentNumber":"","DateFirstDayStorage":"2019-06-21","InternationalDeliveryType":"","DaysStorageCargo":"","RecipientWarehouseTypeRef":"841339c7-591a-42e2-8233-7a0a00f0ed6f","StorageAmount":"","StoragePrice":"","VolumeWeight":"0.50","SeatsAmount":"1","OwnerDocumentType":"","ActualDeliveryDate":"2019-06-12 12:23:22","DateReturnCargo":"","CardMaskedNumber":"","Status":"Прибув у відділення","StatusCode":"7","RefEW":"8ed817ef-8c18-11e9-91ff-0025b501a04b","RedeliveryPaymentCardRef":"","RedeliveryPaymentCardDescription":"","CreatedOnTheBasis":"","DatePayedKeeping":"2019-06-21 00:00:00","OnlineCreditStatusCode":"","OnlineCreditStatus":""}])
获取数据的方法:

RestTemplate RestTemplate=新的RestTemplate; 数据字符串=restTemplate.postForObjectblalba,blabla,Data.class 我的班级呢

公共类数据{ @JsonPropertydata 私有JsonNode数据; //准备好 }
有几种方法可以实现这一目标:

使用地图 您可以将响应负载读取为映射:

ParameterizedTypeReference响应类型= 新的参数化类型引用{}; 映射响应payload= restTemplate.exchangepurchaseRequestDetailsEndpoint,HttpMethod.POST, 新的HttpEntityrequestPayload、responseType; 字符串statusCode=responsePayload.getStatusCode; 仅映射所需的属性 定义映射所需属性的类:

@资料 @JsonIgnorePropertiesignoreUnknown=true 公共类响应payload{ @JsonPropertyStatusCode 私有字符串状态码; } 并使用上面定义的类读取响应有效负载:

ResponsePayload ResponsePayload= restemplate.postForObjecturi、请求、响应payload.class; 字符串statusCode=responsePayload.getStatusCode; 或者,您可以映射所需的属性,并将其余属性存储在映射中:

@资料 公共类响应payload{ @JsonPropertyStatusCode 私有字符串状态码; @JSONANYSETER 私有映射属性=新HashMap; @杰索尼奥雷 公共对象getString键{ 返回properties.getkey; } }
您可能应该用一些有意义的东西替换blalba。当我在restTemplate.postForObjecturi、request、responseType中使用第一种方法时,iw得到:无法解析方法'postForObjectjava.lang.String,java.lang.String,org.springframework.core.ParameterizedTypeReference’当我使用你的第二种方式时,我会得到null@khззззЯзЯзЯЯзЯ。改用exchange。我的答案已相应更新。