繁体   English   中英

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

[英]How to format JSON string of data to send from WebView to JavaScript?

我想将多个值从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");

report.html

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

script.js

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM