Android 2.3.7 Webview不接受字符串化的json (result总是一个空对象)

Android 2.3.7 Webview won't accept stringified json (result is always an empty object)

本文关键字:result 一个 对象 json Webview 不接受 字符串 Android      更新时间:2023-09-26

没有例外,什么都没有。尝试了所有的方法来解析返回的字符串化JSON在一个webview的javascript接口到一个对象,但不工作在Android 2.3.7 webview。

返回的字符串很简单:"{test:true}"。我使用了两种方法:

oResult = window.app.getDemoObj(); // This function is a java function and resturns the string
alert( typeof oResult ); // Shows that is it a string
    alert( oResult ); // shows the content
    if( typeof oResult === 'string' )
     { 
       // Tried both methods but result is always odd object            
       if( window.JSON )
        { oResult = JSON.parse(oResult); }
       else 
        { oResult = (new Function('return '+(new String(oResult))+';'))(); }
       alert( oResult.test ); // shows undefined, the object is empty with both methods
     }

当我用"{test:true}"替换window.app.getDemoObj()时,两种方法都可以完美地工作。这似乎是一个安全/来源问题/设置?

我怎样才能让它像其他Android版本一样工作?

我想你可能遇到的是你需要字符串化而不是解析JSON。

使用JSON.stringify

将JSON对象转换为文本https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

将文本转换为JSON对象,使用JSON.parse:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse