为什么JSON数据未正确插入

时间:2017-08-25 21:39:43

标签: javascript json

我正在尝试使用以下代码将本地JSON数据呈现给DOM,但它无法正常工作。我不确定我做错了什么,并希望得到任何帮助。

HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="model-controller.js"></script>
</head>

<body>
<button id="clickMe" style="background-color: #000; color: white;" onClick="myObj()">Click ME</button>

</div>
<div id="demo"></div>


</body>
</html>

模型controller.js

var myObj =  JSON.parse("item-data.json", function(data) {return data});
document.getElementById("demo").innerHTML = data; 
};
myObj();

2 个答案:

答案 0 :(得分:1)

JSON.parse函数获取一个表示json编码对象的字符串,而不是文件的路径。

如果需要解析文件,可以使用jquery访问文件

fn test(cp_vec_tmp: Vec<&str>) -> Vec<&str> {
    let mut multi_string = String::new();
    let mut whether_has_quote = false;
    let mut cp_vec: Vec<&str> = Vec::new();
    for index in 0..cp_vec_tmp.len() {
        if cp_vec_tmp[index].starts_with("\"") {
            whether_has_quote = true;
            multi_string = String::new();
        }

        if whether_has_quote {
            multi_string.push_str(cp_vec_tmp[index]);
        } else {
            cp_vec.push(cp_vec_tmp[index]);
        }

        if cp_vec_tmp[index].ends_with("\"") {
            whether_has_quote = false;
            cp_vec.push(&multi_string);
        }
    }
    return cp_vec;
}

或者使用vanilla javascript然后$.getJSON('item-data.json', function(data) { document.getElementById("demo").innerHTML = data; }); 获取文件的内容:

JSON.parse

答案 1 :(得分:1)

app.use(express.static(path.join(__dirname, '/'))); 将给定的字符串解析为JS对象。但它不会加载外部文件。 See this page for more info on the JSON.parse method

您要做的是获取文件,例如jQuery.getJSONjQuery.getaxios

JSON.parse
jQuery.get( 'https://api.coinbase.com/v2/prices/spot?currency=USD', ( data ) => {
  $( '#result' ).text( JSON.stringify( data, null, 2 ) );
} );