【发布时间】:2023-03-30 14:23:01
【问题描述】:
我正在用 C# 开发一个可以控制 SqueezeboxServer(SBS) 的应用程序。与 SBS 的通信是通过 JSON 消息发送到http://serverIP:9000/jsonrpc.js 所以我通过 HTTPWepRequest 发送 JSON 消息并通过 HTTPWebResponse 获得答案。
我得到的答案是 JSON 表示法的字符串。这就是问题开始的地方......现在我使用 JavaScriptSerializer 将 JSON 消息转换为对象。是这样的:
public static Object FromJSON(this string reply)
{
JavaScriptSerializer deSerializer = new JavaScriptSerializer();
return deSerializer.DeserializeObject(reply);
}
这段代码给了我一个包含我要求的数据的对象。我要求的数据可能非常不同。有时答案是一个答案,而在其他情况下可能是多个答案。
让我们考虑一下我包含的两张图片:
第一个显示反序列化器返回后的对象。您可以看到该对象是具有 4 个键值对的字典。我感兴趣的kvp是第4个。关键的“结果”是保存我需要的数据的那个。但是这个键有另一个字典作为值。这一直持续到我想要的实际数据,即专辑名称及其 ID。
在第二张图片中,我想要的数据是属于“_count”键的值 0。如您所见,这个对象不那么复杂。
所以我的问题的底线是我如何制定一个可以检索我想要的信息但适用于不同类型的对象(如不同深度)的解决方案?
希望任何人都可以向我发送正确的方向。
谢谢!
【问题讨论】:
标签: c# json javascriptserializer