Обработка json
Добрый день, есть ajax запрос:
$.ajax({ type: "POST", url: "http://geotest/ajax.php", data: { centerDist:centerDistance,pointDist:pointsDistance }, success: function(msg){ } }); который посылает некие данные на обработку в php, после обработки они возвращаются вот в таком виде: {"C":[{"path":["C","C3","C8","C2","C12","C"],"point":[["48.5515","29.5915"],["45.729","29.7453"],["48.0188","31.0637"],["47.6686","32.404"]]},{"path":["C","C11","C"],"point":{"4":["49.3284","31.1077"]}}], "D":[{"path":["D","D7","D5","D4","D14","D"],"point":[["48.039","38.2796"],["47.1016","35.2604"],["48.6972","35.7438"],["50.0099","37.1602"]]},{"path":["D","D10","D"],"point":{"4":["50.0695","33.7004"]}}], "A":[{"path":["A","A0","A13","A1","A"],"point":[["51.5378","33.5307"],["50.3561","32.1842"],["50.2153","29.5036"]]}], "B":[{"path":["B","B9","B6","B"],"point":[["50.8827","25.3508"],["50.039","25.2796"]]}]} Подскажите как можно вытащить все значения поля "point" ? |
msg.C[1]или msg['C'][1] |
Цитата:
но там еще проблема в том, что буквы могут быть разными |
Dark19, что мешает пройтись циклом, если вложенность известна?
|
Dark19,
:blink: var msg = { "C": [{ "path": ["C", "C3", "C8", "C2", "C12", "C"], "point": [ ["48.5515", "29.5915"], ["45.729", "29.7453"], ["48.0188", "31.0637"], ["47.6686", "32.404"] ] }, { "path": ["C", "C11", "C"], "point": { "4": ["49.3284", "31.1077"] } }], "D": [{ "path": ["D", "D7", "D5", "D4", "D14", "D"], "point": [ ["48.039", "38.2796"], ["47.1016", "35.2604"], ["48.6972", "35.7438"], ["50.0099", "37.1602"] ] }, { "path": ["D", "D10", "D"], "point": { "4": ["50.0695", "33.7004"] } }], "A": [{ "path": ["A", "A0", "A13", "A1", "A"], "point": [ ["51.5378", "33.5307"], ["50.3561", "32.1842"], ["50.2153", "29.5036"] ] }], "B": [{ "path": ["B", "B9", "B6", "B"], "point": [ ["50.8827", "25.3508"], ["50.039", "25.2796"] ] }] } function fn(data) { Object.keys(data).forEach(function (key) { alert(data[key][0]["point"]) }); } fn(msg) |
рони,
у меня почему-то пишет undefined и все |
Dark19,
смотрите что вы получили в msg |
Цитата:
{"C":[{"path":["C","C3","C8","C2","C12","C"],"point":[["48.5515","29.5915"],["45.729","29.7453"],["48.0188","31.0637"],["47.6686","32.404"]]},{"path":["C","C11","C"],"point":{"4":["49.3284","31.1077"]}}],"D":[{"path":["D","D7","D5","D4","D14","D"],"point":[["48.039","38.2796"],["47.1016","35.2604"],["48.6972","35.7438"],["50.0099","37.1602"]]},{"path":["D","D10","D"],"point":{"4":["50.0695","33.7004"]}}],"A":[{"path":["A","A0","A13","A1","A"],"point":[["51.5378","33.5307"],["50.3561","32.1842"],["50.2153","29.5036"]]}],"B":[{"path":["B","B9","B6","B"],"point":[["50.8827","25.3508"],["50.039","25.2796"]]}]} больше нет ничего |
Dark19,
может вы забыли распарсить? JSON.parse(msg)['C'][1]; Читайте $.ajax dataType: 'json' |
рони,
Может я не так пишу что-то? $.ajax({ type: "POST", url: "http://geotest/ajax.php", data: { centerDist:centerDistance,pointDist:pointsDistance }, success: function(msg){ console.log(msg); function fn(data) { Object.keys(data).forEach(function (key) { console.log(data[key][0]["point"]) }); } fn(msg); } }); |
Часовой пояс GMT +3, время: 05:14. |