Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не могу распарсить JSON. (https://javascript.ru/forum/jquery/43257-ne-mogu-rasparsit-json.html)

gorenie 28.11.2013 22:31

Не могу распарсить JSON.
 
Здравствуйте, есть файл в формате JSON:
Код:

[{"makename":"Mitsubishi","makelogo":"MC","detailnum":"MB831042","detailname":"РЫЧАГ МАЯТНИКОВЫЙ","pricerur":"2779.58","quantity":"3","time":"1","timegar":"3","country":"Москва","supcode":"0589","statistic":"93"},{"makename":"Mitsubishi","makelogo":"MC","detailnum":"MB831042","detailname":"РЫЧАГ МАЯТНИКОВЫЙ","pricerur":"2926.08","quantity":"11","time":"1","timegar":"3","country":"Москва","supcode":"0485","statistic":"99"}]
При попытке распарсить:
Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/2002/REC-xhtml1-20020801/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>jQuery. getJSON</title>
    <meta name="description" content="jQuery library, AJAX. getJSON Function" />
    <script type='text/javascript' src='http://code.jquery.com/jquery-latest.js'></script>
    <link href="style.css" media="screen" rel="stylesheet" type="text/css" /> 
</head>
<body>
<script>
$(document).ready(function () {
  $("#button").click(function () {
$.ajax({
            url:'222', // файл JSON
            dataType:'text', // Тип текстовый, при указании JSON результат не меняется
            success:function(json) {
            jQuery('#example-4').append('<br/>Detal: ' + json + '<br/>');
                                            }

        });
  });
});
</script>
        <div class="example cursor" id="example-4">Click to load JSON data</div>
    <div id="button" style="width:300px; height:300px; border:solid 1px red;"></div>
</body>
</html>

При выполнении данного кода я получаю весь текст из файла 222 в переменную json. При указании json.detailname или любого другого значения из файла выходит результат undefined.
При добавлении var res = jQuery.parseJSON(json); переменная res становиться такой же как и json и не даёт оперировать с данными.
Помогите пожалуйста распарсить, нужен рабочий вариант. Либо я где то что то делаю не так, либо всё делаю не так. ))
Проверка данных JSON указывает на валидный код.

ksa 29.11.2013 09:16

Цитата:

Сообщение от gorenie
При выполнении данного кода я получаю весь текст из файла 222 в переменную json

Так и написано в твоем примере. :yes:
Причем значение той переменной - строка.

Цитата:

Сообщение от gorenie
При указании json.detailname или любого другого значения из файла выходит результат undefined.

И это логично. :yes:
Т.к. json это некая строка и там нет такого свойства...

Цитата:

Сообщение от gorenie
Проверка данных JSON указывает на валидный код.

Таки есть. :yes:
Ты просто в корне не понимаешь с чем имеешь дело.

Цитата:

Сообщение от gorenie
Помогите пожалуйста распарсить

Там парсить ничего не нужно. Все уже распарсено до нас! (с) :D

ksa 29.11.2013 09:20

Цитата:

Сообщение от gorenie
Либо я где то что то делаю не так, либо всё делаю не так.

Видишь с чем ты имеешь дело?

var data = [
	{
		"makename": "Mitsubishi",
		"makelogo": "MC",
		"detailnum": "MB831042",
		"detailname": "РЫЧАГ МАЯТНИКОВЫЙ",
		"pricerur": "2779.58",
		"quantity": "3",
		"time": "1",
		"timegar": "3",
		"country": "Москва",
		"supcode": "0589",
		"statistic": "93"
	}, 
	{
		"makename": "Mitsubishi",
		"makelogo": "MC",
		"detailnum": "MB831042",
		"detailname": "РЫЧАГ МАЯТНИКОВЫЙ",
		"pricerur": "2926.08",
		"quantity": "11",
		"time": "1",
		"timegar": "3",
		"country": "Москва",
		"supcode": "0485",
		"statistic": "99"
	}
];
alert(data[0].detailname);

gorenie 29.11.2013 22:26

Большое спасибо за содержательный ответ. Всё сразу заработало ))
Респект даже не по знанию, а по качеству ответа. Спасибо большое.


Часовой пояс GMT +3, время: 21:00.