私はデータベースに入れたいオープンWIFIのAPIからJSON出力を得ました。データはthis formです。serde_jsonでcurlからJSONを解析しようとするとタイプが一致しない
私はすでにcurl
を介して情報を得ました:
error[E0308]: mismatched types
--> src/main.rs:29:54
|
29 | let to_string: Freifunk = serde_json::from_value(json)?;
| ^^^^ expected enum `serde_json::Value`, found u32
|
= note: expected type `serde_json::Value`
found type `u32`
error[E0308]: mismatched types
--> src/main.rs:18:40
|
18 | fn json_to_rust() -> Result<(), Error> {
| ________________________________________^
19 | | //Json von Homepage "Auslesen/Downloaden"
20 | | let mut easy = Easy::new();
21 | | easy.url("https://map.freifunk-rhein-neckar.de/data/nodes.json")
... |
29 | | let to_string: Freifunk = serde_json::from_value(json)?;
30 | | }
| |_^ expected enum `std::result::Result`, found()
|
= note: expected type `std::result::Result<(), serde_json::Error>`
found type `()`
はあなたが私に与えてもらえ:私は常にエラーを取得
extern crate curl;
extern crate serde;
extern crate serde_json;
use std::io::{stdout, Write};
use curl::easy::Easy;
#[macro_use]
extern crate serde_derive;
use serde_json::Error;
#[derive(Serialize, Deserialize)]
struct Freifunk {
timestamp: u32,
version: i8,
nodes: u32,
}
fn json_to_rust() -> Result<(), Error> {
//Json von Homepage "Auslesen/Downloaden"
let mut easy = Easy::new();
easy.url("https://map.freifunk-rhein-neckar.de/data/nodes.json")
.unwrap();
easy.write_function(|data| Ok(stdout().write(data).unwrap()))
.unwrap();
easy.perform().unwrap();
let mut json = easy.response_code().unwrap();
let to_string: Freifunk = serde_json::from_value(json)?;
}
fn main() {}
:
let mut easy = Easy::new();
easy.url("https://map.freifunk-rhein-neckar.de/data/nodes.json")
.unwrap();
easy.write_function(|data| Ok(stdout().write(data).unwrap()))
.unwrap();
easy.perform().unwrap();
let mut json = easy.response_code().unwrap();
私はserde_jsonを使用しようとしましたデータをデータベースに取り込むためにデータを処理する方法の例?