无法访问 JSONArray

Unable to access JSONArray

本文关键字:JSONArray 访问      更新时间:2023-09-26

我正在为Android开发一个Phonegap插件。在这里,我从callBackContext.sendPluginResult(result);返回JSONArray.以下是我开发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 打印的方式是否存在问题。

请问有什么想法吗?

更新我注意到我从安卓控制台收到以下消息

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)

在div 元素中打印之前检查 jsonArray 中的属性。

if(jsonArray.hasOwnProperty('type') ){ 
         document.getElementById("test").innerHTML = json[0].result;        
     }