#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">
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>
Ответ №1:
Это зависит от браузера, но с несколькими небольшими изменениями:
// 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() {
}
Ответ №2:
Я думаю, что проблема в коде 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>