我正在为android开发一个phonegap插件。在这里,我将从JSONArray
返回callBackContext.sendPluginResult(result);
。以下是我开发JSONArray
private JSONArray makeJsonObject(String type, String result, float confidence)
{
JSONObject recogResult = new JSONObject();
JSONArray jsonArray = new JSONArray();
//JSONObject jsonObject = new JSONObject();
try
{
recogResult.put("type", type);
recogResult.put("result", result);
recogResult.put("confidence", confidence);
jsonArray.put(recogResult);
//jsonObject.put("recognitionResults", recogResult);
}
catch(JSONException e)
{
Log.d(LOG_TAG, "JSON Error", e);
}
return jsonArray;
}
上面的方法会产生如下结果。
[{"type":"interim","result":"da","confidence":0}]
以下是我通过javascript阅读的方式。
function startRecognition()
{
SpeechRecPlug.startRecognition(function(msg){
var data = msg;
var json = JSON.parse(data);
var div = document.getElementById("test");
div.innerHTML = div.innerHTML + " "+ json[1].result;
});
}
但问题是,在HTML中,没有任何内容被打印出来。不确定我尝试使用Javascript打印的方式是否存在问题。
请问好吗?
更新 我注意到我从android控制台获取以下消息
01-19 12:54:57.946: I/chromium(30192): [INFO:CONSOLE(310)] "Error in Success callbackId: SpeechRecPlug1992021962 : SyntaxError: Unexpected token o", source: file:///android_asset/www/cordova.js (310)
答案 0 :(得分:0)
在div元素中打印之前检查jsonArray中的属性。
if(jsonArray.hasOwnProperty('type') ){
document.getElementById("test").innerHTML = json[0].result;
}