javascript - 如何格式化 JSON 数据字符串以从 WebView 发送到 JavaScript?

标签 javascript java android json webview

我想将多个值从 Android WebView 传递到 JavaScript。 问题是,我在 JS 中收到的字符串绝对是原始的(就像纯文本中显示的控制字符)。

所以我的具体问题是我从 Java 发送以下字符串:

final String chartData = "{ \"data\": 1000, a: 10, b: 30, c: [ 5, 10, 15 ] }";

我收到的绝对是原始的:

"{ \"data\": 1000, a: 10, b: 30, c: [ 5, 10, 15 ] }"

但我想要这个(java解析的字符串):

{ "data": 1000, a: 10, b: 30, c: [ 5, 10, 15 ] }

我现在不处理任何JSON,所以你可以忽略JSON字符串中的“语法问题”。我只想先正确接收字符串。这是到目前为止我的代码:

WebViewActivity.java

webView = (WebView) findViewById(R.id.webView1);

    webView.getSettings().setJavaScriptEnabled(true);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setAllowUniversalAccessFromFileURLs(true);
    webSettings.setAllowFileAccessFromFileURLs(true);

    final String chartData = "{ \"data\": 1000, a: 10, b: 30, c: [ 5, 10, 15 ] }";

    webView.setWebChromeClient(new WebChromeClient());
    webView.setWebViewClient(new WebViewClient(){
        public void onPageFinished(WebView view, String url){
            webView.loadUrl("javascript:showAlert('message from android')");
            webView.loadUrl("javascript:createChart('"+chartData+"')");
        }
    });

    webView.loadUrl("file:///android_asset/report.html");

报告.html

<div id="debugContainer">
    debug
</div>

脚本.js

function createChart(lineChartData){
document.getElementById('debugContainer').innerHTML = JSON.stringify(lineChartData, null, 4);}

最佳答案

您收到的是字符串化的 JSON,您可以 JSON.parse() 将其作为常规对象或替换转义字符。通过 http 发送的消息始终是一个字符串。您需要使用字符串或将其解析为 json。

关于javascript - 如何格式化 JSON 数据字符串以从 WebView 发送到 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44156197/

相关文章:

javascript - 使用 jquery 根据数组对表行进行排序?

javascript - 复选框选择所有 php javascript

java - 使用 Java Nashorn 加载 'quests'

java - 如何将大文件上传到 GCP Cloud Storage?

android - RecyclerView 滚动不流畅

android - 带有 Phonegap 和 AngularJS 的 HTML5 模式

javascript - 密码登录页面

java - 可以使用 jcodemodel 修改现有的类文件

java - android:ExecutorService:- ExecutorService 不等待 executorService 完成

javascript - JS Array Splice 删除数组中的元素