該賞金到期in 4天。此問題的答案有資格獲得 100聲望獎勵。 Finalmix6正在從信譽良好的來源尋找答案。
我有這個 JSON 物件:
{"isCompany":false,"accommodations":[{"id":"00000000031000000067","isChecked":false,"name":"5 JULI 2017","addressLine1":"STRAAT 10 ","addressLine2":"1000 New York","nightsDeclared":0,"schoolNightsDeclared":0,"schoolNightsAttached":0,"taxableNights":0.0,"totalPayment":0.0,"isInProgress":false,"isLate":false,"isPayed":"false","deadline":"2021-12-31","initialAmount":0.0,"remainingAmount":0.0},{"id":"00000000031000006362","isChecked":false,"name":"BELLEVIE","addressLine1":"STRAAT 10 ","addressLine2":"1000 New York","nightsDeclared":0,"schoolNightsDeclared":0,"schoolNightsAttached":0,"taxableNights":0.0,"totalPayment":0.0,"isInProgress":false,"isLate":false,"isPayed":"false","deadline":"2021-12-31","initialAmount":0.0,"remainingAmount":0.0}]}
如果美化,呈現這個:
{
"isCompany": false,
"accommodations": [
{
"id": "00000000031000000067",
"isChecked": false,
"name": "5 JULI 2017",
"addressLine1": "STRAAT 10 ",
"addressLine2": "1000 New York",
"nightsDeclared": 0,
"schoolNightsDeclared": 0,
"schoolNightsAttached": 0,
"taxableNights": 0.0,
"totalPayment": 0.0,
"isInProgress": false,
"isLate": false,
"isPayed": "false",
"deadline": "2021-12-31",
"initialAmount": 0.0,
"remainingAmount": 0.0
},
{
"id": "00000000031000006362",
"isChecked": false,
"name": "BELLEVIE",
"addressLine1": "STRAAT 10 ",
"addressLine2": "1000 New York",
"nightsDeclared": 0,
"schoolNightsDeclared": 0,
"schoolNightsAttached": 0,
"taxableNights": 0.0,
"totalPayment": 0.0,
"isInProgress": false,
"isLate": false,
"isPayed": "false",
"deadline": "2021-12-31",
"initialAmount": 0.0,
"remainingAmount": 0.0
}
]
}
通過撰寫以下代碼,我從 HTML 中的 div 獲得了完整的 JSON 陣列:
.check(css("section.ht-declarations-tab-content-container>div#DATA--DECL-DATA").saveAs("jsonObj"))
然后為了呈現結果我寫了這個:
.exec { session => println("json = " session("jsonObj").as[String]); session }.exitHereIfFailed
但是,正如所解釋的,我已經獲得了完整的 JSON 陣列。
如何只獲取第一個物件的第一個 ID 元素?所以基本上:00000000031000000067
uj5u.com熱心網友回復:
如果您的 JSON 嵌入在 HTML 中,您有兩種可能性:
- 使用
css迄今為止所做的檢查從 HTML 中提取 JSON,然后用于transform決議 JSON 并提取所需的值,例如按照另一個答案中的建議使用 Jackson - 用于
regex一次性提取所需的值,例如check(regex(""""accommodations":\[\{"id":"(.*?)""""))
uj5u.com熱心網友回復:
我會用杰克遜來做那份作業:
private static final ObjectMapper MAPPER = new ObjectMapper();
public static String getFirstId(String json) throws JsonProcessingException {
return MAPPER.readTree(json).get("accommodations").get(0).get("id").asText();
}
然后你可以這樣做:
System.out.println(getFirstId(json));
輸出:
00000000031000000067
如果要將 de 列印JSON為樹,可以執行以下操作:
public static String toTree(String json) throws JsonProcessingException {
return MAPPER.readTree(json).toPrettyString();
}
然后你可以這樣做:
System.out.println(toTree(json));
輸出:
{
"isCompany" : false,
"accommodations" : [ {
"id" : "00000000031000000067",
"isChecked" : false,
"name" : "5 JULI 2017",
"addressLine1" : "STRAAT 10 ",
"addressLine2" : "1000 New York",
"nightsDeclared" : 0,
"schoolNightsDeclared" : 0,
"schoolNightsAttached" : 0,
"taxableNights" : 0.0,
"totalPayment" : 0.0,
"isInProgress" : false,
"isLate" : false,
"isPayed" : "false",
"deadline" : "2021-12-31",
"initialAmount" : 0.0,
"remainingAmount" : 0.0
}, {
"id" : "00000000031000006362",
"isChecked" : false,
"name" : "BELLEVIE",
"addressLine1" : "STRAAT 10 ",
"addressLine2" : "1000 New York",
"nightsDeclared" : 0,
"schoolNightsDeclared" : 0,
"schoolNightsAttached" : 0,
"taxableNights" : 0.0,
"totalPayment" : 0.0,
"isInProgress" : false,
"isLate" : false,
"isPayed" : "false",
"deadline" : "2021-12-31",
"initialAmount" : 0.0,
"remainingAmount" : 0.0
} ]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/387351.html
上一篇:SparkSQL中臨時表和資料庫表的可見性,是否可以從通常的jdbc查詢對臨時表進行嵌套查詢
下一篇:在Jupyter實驗室中從bigquery讀取時無法實體化提供程式com.google.cloud.spark.bigquery.BigQueryRelationProvider
