0

我正在尝试使用以下代码从网站获取 JSON 数据,但我收到错误 Uncaught SyntaxError: Unexpected identifier at file:///android_asset/www/projectName.html:1 如果我将网站上的数据保存为一个 .json 文件我可以很好地访问它,但如果我从网站访问它就不行。我如何从网站上完成这项工作?

HTML:

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
    </script>
<script type="text/javascript">
        $(document).ready(function(){
            $("button").click(function(){
            $.get('http://example.ca/log_sheets.json', function(data) {
                alert('get performed');
                var obj = eval ("(" + data + ")");
                $("p").html(obj[0].log_sheet.activity_type);
            });
        });
    });
</script>
</head>

<body>
    <h2>Heading</h2>
    <p>Display</p>
    <button>Click me</button>
</body>
</html>

JSON数据示例:

[{"log_sheet":{"activity_type":"Normal","activity_value":null,"carbs_value":25.0, ect... }}]

使用 phonegap 运行 html 页面的代码:

package com.example.projectName;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import org.apache.cordova.*;

public class MainActivity extends DroidGap {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/projectName.html");
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }


}
4

2 回答 2

0
file:///android_asset/www/projectName.html

该链接看起来像一个本地文件,因此即使您将其映射到您的网络服务器中作为应该预处理的东西,它也会按原样出现。

如果它真的是您项目的一部分,看起来您必须发布相关代码。

于 2012-07-30T21:06:41.557 回答
0

如果 jQuery 认为您正在检索 JSON(通过服务器提供的 mime 类型、 的最终参数$.get(...,'json')或使用$.getJSON),则传递给回调的数据将已经是 JavaScript 对象。

在这种情况下,你不会想要eval它。

于 2012-07-30T21:54:17.133 回答