HarmonyOS 鸿蒙Next 使用websocket技术时message事件返回的value如何取出字段值

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 使用websocket技术时message事件返回的value如何取出字段值

message事件返回值value的类型是 string | ArrayBuffer  打印出来value值为{“t”:“ag_leave_room”,“id”:“123”},如何才能拿出t字段的值进行使用 例如value.t

2 回复

使用JSON.parse来解析,参考下面的示例:

let str:string = '{"t":"ag_leave_room","id":"123"}'
let obj = JSON.parse(str)
console.info("aaaaa" + (obj as object)?.["t"]);
console.info("aaaaa"+ (obj as object)?.["id"]);

更多关于HarmonyOS 鸿蒙Next 使用websocket技术时message事件返回的value如何取出字段值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中使用WebSocket技术时,message事件返回的value通常是一个包含数据包的字符串或JSON对象。要取出字段值,可以按照以下步骤操作:

  1. 字符串解析

    • 如果value是字符串格式,且为JSON字符串,可以使用鸿蒙提供的JSON解析库进行解析。
    • 使用JsonParser类将字符串解析为JsonValue对象。
    • 通过JsonObject访问具体字段,例如jsonObject.getString("fieldName")
  2. JSON对象解析

    • 如果value已经是JsonValueJsonObject对象,直接访问字段即可。
    • 例如,使用jsonObject.get("fieldName")获取字段,并根据字段类型进行转换(如getIntgetDouble等)。

示例代码:

// 假设 messageEvent.message 是包含 JSON 字符串的 value
std::string jsonStr = messageEvent.message;
JsonValue* jsonValue = JsonParser::ParseFromString(jsonStr);
if (jsonValue && jsonValue->IsJsonObject()) {
    JsonObject* jsonObject = jsonValue->GetJsonObject();
    std::string fieldNameValue = jsonObject->GetString("fieldName");
    // 使用 fieldNameValue
}
// 释放 jsonValue
delete jsonValue;

注意:上述代码假设你已经在项目中引入了鸿蒙的JSON解析库,并且已经正确配置好相关依赖。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部