В вашем коде ключи String
. Но вы пытаетесь найти значение с помощью клавиши Symbol
.
В этом случае вы должны использовать опцию symbolize_names
.
string = "[{\"id\":null,\"amount\":1,\"price\":1000.0,\"concept_id\":3,\"concept_type\":\"RegisterType\",\"created_at\":null,\"updated_at\":null,\"transaction_sara_id\":null,\"code\":null,\"date_code\":null,\"discount_amount\":null,\"type_discount_id\":null,\"observations\":null}]"
data = JSON.parse(string, symbolize_names: true).first
data[:price] #=> 1000.0
XMLHttpRequest, т.е. Ajax, без XML.
точный способ Вы делаете это зависит, на какой платформе JavaScript Вы используете, но если мы игнорируем проблемы совместимости, то Ваш код посмотрит что-то как:
var client = new XMLHttpRequest(); client.open('GET', '/foo.txt'); client.onreadystatechange = function() { alert(client.responseText); } client.send();
Обычно разговор, тем не менее, XMLHttpRequest не доступен на всех платформах, таким образом, некоторый fudgery сделан. Еще раз Ваш лучший выбор состоит в том, чтобы использовать платформу Ajax как jQuery.
Одно дополнительное соображение: это будет только работать, пока foo.txt находится на том же домене. Если это будет на другом домене, то политика безопасности того-же-источника будет препятствовать тому, чтобы Вы читали результат.
Если бы Ваш вход был структурирован как XML, то Вы могли бы использовать эти importXML
функция. (Больше информации здесь в quirksmode).
, Если это не XML, и нет эквивалентной функции для импорта простого текста, затем Вы могли открыть его в скрытом iframe и затем считать содержание оттуда.
вот то, как я сделал это в jQuery:
jQuery.get('http://localhost/foo.txt', function(data) {
alert(data);
});