遇到有关javascript和JSON的错误
我正在学习JSON。我只是写了一个简单的代码,这是不工作,也没有给出任何错误时,点击按钮。所以请帮我抓住错误。这是我的html遇到有关javascript和JSON的错误,javascript,json,Javascript,Json,我正在学习JSON。我只是写了一个简单的代码,这是不工作,也没有给出任何错误时,点击按钮。所以请帮我抓住错误。这是我的html <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript" language="javascript"> fun
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" language="javascript">
function GetJSON()
{
alert("pp");
var moviereviewtext = "{"title": "Friday the 13th", "year": 1980, "reviews":
[{"reviewer": "Pam", "stars": 3, "text": "Pretty good, but could have used more Jason"},
{"reviewer": "Alice", "stars": 4, "text": "The end was good, but a little unsettling"}]}";
var jsonobj = eval("(" + moviereviewtext + ")");
var reviewername = jsonobj.reviews[0].reviewer;
var numberstars = jsonobj.reviews[0].stars;
var reviewerthoughts = jsonobj.reviews[0].text;
alert(reviewername);
alert(numberstars);
alert(reviewerthoughts);
}
</script>
</head>
<body >
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="GetJSON();return false;" />
</form>
</body>
</html>
函数GetJSON()
{
警报(“pp”);
var moviereviewtext=“{”标题“:“13号星期五”,“年份”:1980年,“评论”:
[{“reviewer”:“Pam”,“stars”:3,“text”:“很好,但可以使用更多Jason”},
{“评论家”:“爱丽丝”,“明星”:4,“文字”:“结局不错,但有点令人不安”}]};
var jsonobj=eval(“+moviereviewtext+”);
var reviewername=jsonobj.reviews[0]。reviewer;
var numberstars=jsonobj.reviews[0].stars;
var reviewerThinks=jsonobj.reviews[0]。文本;
警报(名称);
警报(数字星);
警觉(思考);
}
这取决于浏览器,但有一些小改动:
// Use single quote to surround and line continuations to support new lines.
var movieReviewText =
'{"title": "Friday the 13th", "year": 1980, "reviews":\
[{"reviewer": "Pam", "stars": 3, "text": "Pretty good, but could have used more Jason"},\
{"reviewer": "Alice", "stars": 4, "text": "The end was good, but a little unsettling"}]}';
var obj = JSON.parse(movieReviewText); // This should be available IE8+, FF3+
另外,请注意,按照惯例,以大写字母开头的函数被视为构造函数。函数名也可以做得更好,因为函数实际上没有得到JSON。也许是这样的
function parseMovieReview() {
}
我认为问题出在ASP代码中。 试着把ASP放在一边。以下代码适用于我:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" language="javascript">
function GetJSON()
{
alert("pp");
var moviereviewtext = '{"title": "Friday the 13th", "year": 1980, "reviews":\
[{"reviewer": "Pam", "stars": 3, "text": "Pretty good, but could have used more Jason"},\
{"reviewer": "Alice", "stars": 4, "text": "The end was good, but a little unsettling"}]}';
var jsonobj = eval("(" + moviereviewtext + ")");
var reviewername = jsonobj.reviews[0].reviewer;
var numberstars = jsonobj.reviews[0].stars;
var reviewerthoughts = jsonobj.reviews[0].text;
alert(reviewername);
alert(numberstars);
alert(reviewerthoughts);
}
</script>
</head>
<body >
<form id="form1">
<Button ID="Button1" Text="Button" OnClick="GetJSON();return false;" />
</form>
</body>
</html>
函数GetJSON()
{
警报(“pp”);
var moviereviewtext='{“标题”:“13号星期五”,“年份”:1980年,“评论”:\
[{“reviewer”:“Pam”,“stars”:3,“text”:“很好,但可以使用更多Jason”}\
{“评论家”:“爱丽丝”,“明星”:4,“文字”:“结局不错,但有点令人不安”}]};
var jsonobj=eval(“+moviereviewtext+”);
var reviewername=jsonobj.reviews[0]。reviewer;
var numberstars=jsonobj.reviews[0].stars;
var reviewerThinks=jsonobj.reviews[0]。文本;
警报(名称);
警报(数字星);
警觉(思考);
}