반응형
Serde를 사용하여 JSON을 최상위 어레이로 역직렬화하려면 어떻게 해야 합니까?
웹 서비스에서 반환된 JSON 데이터가 있습니다.JSON은 최상위 어레이입니다.
[
{
"data": "value1"
},
{
"data": "value2"
},
{
"data": "value3"
}
]
사용.serde_derive
만들기 위해서struct
s 어레이에 포함된 데이터를 역직렬화할 수 있지만 Serde가 최상위 어레이를 역직렬화할 수 없습니다.
제가 뭘 놓쳤나요, 아니면 서드가 최고 레벨 어레이를 분리할 수 없나요?
는, 간단하게 사용할 수 있습니다.
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Debug)]
struct Foo {
data: String,
}
fn main() -> Result<(), serde_json::Error> {
let data = r#"[
{
"data": "value1"
},
{
"data": "value2"
},
{
"data": "value3"
}
]"#;
let datas: Vec<Foo> = serde_json::from_str(data)?;
for data in datas.iter() {
println!("{:#?}", data);
}
Ok(())
}
필요에 따라서, 투과 기능을 사용할 수도 있습니다.
#[derive(Serialize, Deserialize, Debug)]
#[serde(transparent)]
struct Foos {
foos: Vec<Foo>,
}
let foos: Foos = serde_json::from_str(data)?;
이를 통해 데이터를 유형으로 캡슐화할 수 있습니다.
언급URL : https://stackoverflow.com/questions/44610594/how-can-i-deserialize-json-with-a-top-level-array-using-serde
반응형
'your programing' 카테고리의 다른 글
ASP.NET MVC 퍼포먼스 (0) | 2023.04.22 |
---|---|
스택 익스체인지Azure Redis를 사용한 Redis가 비정상적으로 느리거나 타임아웃 오류를 발생시킨다. (0) | 2023.04.22 |
jq를 사용하여 임의의 단순 JSON을 CSV로 변환하려면 어떻게 해야 합니까? (0) | 2023.04.02 |
node.js를 사용하여 JSON을 통한 루프 (0) | 2023.04.02 |
SELECT 문에서 BOUAL 유형을 사용하는 방법 (0) | 2023.04.02 |