数据库数据以json格式传递到网页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库数据以json格式传递到网页相关的知识,希望对你有一定的参考价值。
参考技术A //将记录转为Json格式public <T extends Object> String objectsToJsonStr(List<T> baseModelList, Class beanClass, String datePatten,
int totalCount)
JSONArray jsonArray = JSONArray.fromObject(baseModelList);
JsonConfig jsonConfig = new JsonConfig();
JSONArray returnJsonArray = new JSONArray();
T baseModel = null;
for (int i = 0; i < jsonArray.size(); i++)
JSONObject rowData = (JSONObject) jsonArray.get(i);
baseModel = (T) JSONObject.toBean(rowData, beanClass);
JSONObject jo = JSONObject.fromObject(baseModel, jsonConfig);
returnJsonArray.add(jo);
StringBuffer jsonString = new StringBuffer();
jsonString.append(returnJsonArray.toString());
// 返回结果集
return jsonString.toString();
//使用实例
String strData = objectsToJsonStr(users, S_USER.class, null, users.size());
//users:多条记录; S_USER:POJO类本回答被提问者采纳
如何将 JSON 格式的数据从 WebView 传递到 HTML 页面
【中文标题】如何将 JSON 格式的数据从 WebView 传递到 HTML 页面【英文标题】:How to pass JSON-formatted data from a WebView to a HTML page 【发布时间】:2012-04-24 07:01:12 【问题描述】:我正在尝试将 JSON 格式的数据从我的 Android WebView 传递到 HTML 页面。但是,每当我尝试解析原始 JSON 数据时,应用程序就会崩溃,我希望其格式为 "key":"data"
我的应用程序的目的是解释此 JSON 数据,将其形成一个值数组,并将其发送到 HTML 页面。这是正确的做法吗?
这是我的 WebView 代码...
public class MyWebView extends Activity
WebView mWebView;
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.web_view);
mWebView = (WebView) findViewById(R.id.webviewSch);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(this, "webConnector");
mWebView.loadUrl("file:///android_asset/table.html");
public String load()
return "\"key\":\"data\"";
这是 HTML 代码...
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function loader()
var jsonData = window.webConnector.load();
</script>
</head>
<body onload="loader()">
Do nothing
</body>
</html>
这是日志猫:
04-15 00:35:44.551: W/dalvikvm(442): JNI WARNING: jarray 0x4053f1a0 points to non-array object (Ljava/lang/String;)
04-15 00:35:44.551: I/dalvikvm(442): "WebViewCoreThread" prio=5 tid=9 NATIVE
04-15 00:35:44.551: I/dalvikvm(442): | group="main" sCount=0 dsCount=0 obj=0x4051bcc0 self=0x19b200
04-15 00:35:44.551: I/dalvikvm(442): | sysTid=451 nice=0 sched=0/0 cgrp=default handle=1684280
04-15 00:35:44.551: I/dalvikvm(442): | schedstat=( 206004592 365607782 69 )
04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.LoadListener.nativeFinished(Native Method)
04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.LoadListener.nativeFinished(Native Method)
04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.LoadListener.tearDown(LoadListener.java:1200)
04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.LoadListener.handleEndData(LoadListener.java:721)
04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.LoadListener.handleMessage(LoadListener.java:219)
04-15 00:35:44.551: I/dalvikvm(442): at android.os.Handler.dispatchMessage(Handler.java:99)
04-15 00:35:44.551: I/dalvikvm(442): at android.os.Looper.loop(Looper.java:130)
04-15 00:35:44.551: I/dalvikvm(442): at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:629)
04-15 00:35:44.551: I/dalvikvm(442): at java.lang.Thread.run(Thread.java:1019)
04-15 00:35:44.551: E/dalvikvm(442): VM aborting
【问题讨论】:
从您的日志中发布您的堆栈跟踪。 我将模拟器更改为 4.0.3,它现在对我有用。 【参考方案1】:我复制粘贴了您的代码,它可以正常工作(因为您没有显示数据,所以没有显示任何内容),但是从 Javascript 到 Android 的回调正确执行。您可以使用以下代码进行检查:
WebView mWebView = (WebView) findViewById(R.id.webView1);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(this, "webConnector");
mWebView.addJavascriptInterface(this, "toaster");
mWebView.loadUrl("file:///android_asset/table.html");
public String load()
Log.e("HelloJavascript","HelloJavascript");
return "\"key\":\"data\"";
public void print(String message)
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
还有 HTML
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function loader()
var jsonData = window.webConnector.load();
toaster.print(jsonData);
</script>
</head>
<body onload="loader()">
Do nothing
</body>
</html>
【讨论】:
感谢Addev的回复。我试过你的代码,但它仍然崩溃。但是,在我将模拟器更改为 4.0.3 后,它起作用了! 不知道你以前用的是什么,但我认为 JavaScript 接口在 2.3 中有一个 bug "Uncaught TypeError: window.webConnector.load is not a function", source: myaddress" 你知道为什么吗? @NaeimFard 你有解决该错误的方法吗? @ParthPatel 真的很老了。不记得了以上是关于数据库数据以json格式传递到网页的主要内容,如果未能解决你的问题,请参考以下文章