【问题标题】:Manipulate Result type with JSON as content以 JSON 为内容操作 Result 类型
【发布时间】:2015-12-18 11:51:54
【问题描述】:

这是问题Why do I get a list of numbers instead of JSON when using the Twitch API via Rust?的后续如果我使用上一篇文章中建议的解决方案:

使用response.get_body() 方法获取字节数列表,可以使用from_utf8() 方法将其转换为Result

这会返回一个包含所有内容的Result。我不确定如何操作它。我希望我可以像使用数组一样使用它,但 docsrustbyexample 似乎无法解释它。 Result 类型的用途是什么?

This is the exact response 是我在将其转换为 UTF-8 后从正文中得到的。

【问题讨论】:

  • 请花一些时间来提出高价值的问题。预计您会问a single question has effort put into it to make it good。提供一个表明您的问题的标题。使用有助于优化您的问题的标签 - 如果问题与 C++nothing 相关,为什么要标记为 c++?询问您是否应该使用库是off-topic。如果您不想遵循 SO 规则,Rust User forum 可能更合适。
  • @Shepmaster 是的,标题很模糊。在问题的主体中,我不确定自己的方法,并询问我是否应该通过改变板条箱来改变我的方法,或者我是否应该继续。这个问题用 c++ 标记,因为 stackoverflow 标记建议建议这样做。这个问题显然很清楚,因为 Robin Krahl 完美地回答了它。

标签: api rust twitch


【解决方案1】:

Result 类型在这里没有帮助 - 它只是存储任意数据并用于错误处理(而不是异常)。但是你可以使用rustc_serialize crate 来解析Result 返回的字符串:

extern crate rustc_serialize;
use rustc_serialize::json::Json;

fn main() {
    let response_result = /* ... */;
    let data = response_result.unwrap();
    let json = Json::from_str(&data).unwrap();
    println!("{}", json.find("status").unwrap());
}

【讨论】:

  • 这可能是我找不到如何操作它的原因。我只是假设我可以。如果我尝试您的代码示例,我会收到有关 Json 类型未实现“get”方法的错误。
  • @AdrianZ。对不起,应该是find。我会改正的。
  • 谢谢,效果很好。你知道任何其他可能对这个项目有帮助的箱子吗?
猜你喜欢
  • 1970-01-01
  • 2014-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 2023-03-30
  • 1970-01-01
相关资源
最近更新 更多