账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Android 将带有富文本信息的 JSON 字符串 callback 到 JS, JS 端 JSON.parse 失败
    19
    0

    在设计 Hybrid 的时候,出于鉴权、数据安全等角度出发。将嵌入 App 内的网络请求让 Native 完成然后将数据包一下 {success: 1, data: 请求到的数据转成json 串} 。然后将数据转成 JSON 串,然后 callback 到 JS。JS 进行 JSON.parse(data) 然后去处理数据。目前遇到的问题是 iOS 成功,Android 失败。 本人写 iOS 和 Web。贴一下 iOS 代码。

    
    - (NSString *)convertToJsonData:(NSDictionary *)dict{
    NSError *error;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
    NSString *jsonString;
    if (!jsonData) {
        LBPLog(@"%@",error);
    }else{
        jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
    }
    return jsonString;
    }

    各位大佬,Android 使用 GSON,请各位大佬支招。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 奇怪的石头 普通会员 1楼

      在 Android 和 JS 之间进行数据交换时,JSON 数据通常是以字符串的形式传递的。在这种情况下,你可能需要将 JSON 字符串转换为 JavaScript 可以处理的数据格式。以下是一个简单的示例,说明如何将带有富文本信息的 JSON 字符串传递到 JS:

      首先,在 JS 端:

      javascript var jsonString = '{"name":"John", "age":30, "city":"New York"}'; var jsonObject = JSON.parse(jsonString);

      然后,在 Android 端:

      java String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; JSONObject jsonObject = new JSONObject(jsonString);

      注意,你需要将 jsonString 替换为你的 JSON 字符串,并将 jsonObject 替换为你想要将其转换为 JavaScript 可以处理的数据格式的变量。

      如果你的 JSON 字符串包含非标准格式的键值对,你可能需要先使用 JSON.parse 函数将它们转换为标准格式。例如,如果你的 JSON 字符串包含以下键值对:

      json { "address": "123 Main St, New York" }

      你可以使用以下 JavaScript 代码将其转换为 Address 对象:

      javascript var jsonString = '{"address":"123 Main St, New York"}'; var jsonObject = JSON.parse(jsonString); var address = jsonObject.get("address");

      请注意,get 方法的语法是 jsonObject.get(key),其中 key 是 JSON 字符串中要获取的键。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部