将JSON字符串从IOS Native发送到Javascript(JSON.Parse)时出现Json Parse错误[重复]

Posted

技术标签:

【中文标题】将JSON字符串从IOS Native发送到Javascript(JSON.Parse)时出现Json Parse错误[重复]【英文标题】:Json Parse Error on sending a JSON string from IOS Native to Javascript (JSON.Parse) [duplicate] 【发布时间】:2018-02-01 09:48:15 【问题描述】:

下面是我的 JSON 字符串,它通过在 WKWebView 上调用 evaluatejavascript 从我的 ios 本机代码发送到 java 脚本。但是当我运行该项目时,我收到如下错误(我正在使用 WKWebview 来显示我的 html 文件)。

JSON:


"config": 
    "APIUrl": "https:some Url",
    "provider": "ActiveDirectory",
    "UserDetails": 
        "UserName": "Test User",
        "FullName": "",
        "EMailAddress": ""
    ,
    "formdata": [
        "postData": "\"args\":[\"Name\":\"ProcessName\",\"Value\":\"offlineformios\",\"Name\":\"isSubmitForm\",\"Value\":true]",
        "url": "https:Get Url",
        "type": "POST",
        "responseStatus": 200
    ,
        "postData": "\"args\":[\"Name\":\"ProcessName\",\"Value\":\"offlineformios\",\"Name\":\"isSubmitForm\",\"Value\":true]",
        "url": "https:Get Url",
        "type": "POST",
        "responseStatus": 200
    ],
    "CDNURL": "file: Local file path",
    "queryString": 
        "PROCESS": "offlineformios"
    ,
    "auth": "Basic test auth",
    "culture": "en-US"
  

错误:

WKJavaScriptExceptionMessage=SyntaxError:JSON 解析错误:预期为“”,WKJavaScriptExceptionColumnNumber=32,

我已尝试使用 jsonlint.com 检查我的 JSON 字符串是否有效,但它显示为有效。所以我找不到任何解决方案,如果有人可以帮助我解决这个问题,那将是很棒的,我期待这个解决方案!谢谢。

【问题讨论】:

“从我的 iOS 本地代码发送到 java 脚本” - 这究竟意味着什么?你如何“发送”它,谁在哪里以及如何接收它? 我正在使用 WKWebView(evaluateJavaScript)。 【参考方案1】:

可能是 PostData 的转义字符的问题

"postData": "\"args\":[\"Name\":\"ProcessName\",\"Value\":\"offlineformios\",\"Name\":\"isSubmitForm\",\"Value\":true]",

【讨论】:

PostData 的转义字符是什么意思? 例如 \" . (en.wikipedia.org/wiki/Escape_character) 尝试使用空 PostData 并查看错误是否再次发生。【参考方案2】:

235 处的意外令牌是

\"args\":[\"Name\":\"ProcessName\",\"Value\":\"offlineformios\",\"Name\":\"isSubmitForm\",\"Value\":true]

因此,通过 stringify 并返回可能会有所帮助:

var JSObject = 
"config": 
    "APIUrl": "https:some Url",
    "provider": "ActiveDirectory",
    "UserDetails": 
        "UserName": "Test User",
        "FullName": "",
        "EMailAddress": ""
    ,
    "formdata": [
        "postData": "\"args\":[\"Name\":\"ProcessName\",\"Value\":\"offlineformios\",\"Name\":\"isSubmitForm\",\"Value\":true]",
        "url": "https:Get Url",
        "type": "POST",
        "responseStatus": 200
    ,
        "postData": "\"args\":[\"Name\":\"ProcessName\",\"Value\":\"offlineformios\",\"Name\":\"isSubmitForm\",\"Value\":true]",
        "url": "https:Get Url",
        "type": "POST",
        "responseStatus": 200
    ],
    "CDNURL": "file: Local file path",
    "queryString": 
        "PROCESS": "offlineformios"
    ,
    "auth": "Basic test auth",
    "culture": "en-US"
  
;
var JSString = JSON.stringify(JSObject)
var newObject = JSON.parse(JSString) 
console.log(newObject);

【讨论】:

以上是关于将JSON字符串从IOS Native发送到Javascript(JSON.Parse)时出现Json Parse错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

VS Code 中的 React Native:将 iOS 设备的配置添加到 launch.json

iOS 将字符串发送到 JSON 服务器

将数据从 PHP 脚本发送到 iOS

如何将 json 从 iOS 设备发送到 Rails 服务器

如何在 React Native 中将事件从 iOS 发送到 javascript

IBM MobileFirst 将 JSON 正文从 iOS SDK 发送到 Java 适配器