将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
如何将 json 从 iOS 设备发送到 Rails 服务器