Задать вопрос

Как реализовать взятие текста из файла JSON, в Rust?

У меня есть такой код, который берёт текст из файла JSON, и выводит его но программа не может найти путь к файлу, отвечу сразу на некоторые вопросы:
- Файл есть, и его название совпадает.

Rust:
fn ascii() -> Result<(), Box<dyn std::error::Error>> {
    let s = fs::read_to_string("../src/ascii.json")?;
    
    let json_data: serde_json::Value = serde_json::from_str(&s)?;
    
    println!("{}", json_data);

    fs::write("../src/ascii.json", serde_json::to_string_pretty(&json_data)?)?;
    
    Ok(())
}


65e872e3b8f68575266308.jpeg
  • Вопрос задан
  • 215 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
maatarashiii
@maatarashiii Автор вопроса
use serde::{Deserialize, Serialize};
use serde_json::from_str;
use lazy_static::lazy_static;

#[derive(Serialize, Deserialize)]
struct Ascii {
    ascii: Vec<String>,
}

lazy_static! {
    static ref ASCII_DATA: Ascii = {
        let file_contents = include_str!("ascii.json");
        from_str(file_contents).expect("Could not deserialize JSON")
    };
}

fn ascii() -> &'static Vec<String> {
    &ASCII_DATA.ascii
}

fn main() {
        let lines = ascii();
        for line in lines {
            println!("{}", line);
        }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347
Crazy on performance...
У Вас относительный путь, относительные пути зависят от контекста запуска, то есть считаются они относительно той папки из которой производится запуск.
То есть данная программа будет искать разные файлы в зависимости от того из какой папки Вы её запустите.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы