2010-08-27 2 views
3

Я сделал что-то глупое ... Я собрал большую тонну данных json и сохранил ее в одном файле. Теперь я получаю ошибки при попытке JSON.parse (файл) из-за того, что его объект JSON после объекта JSON. Может ли кто-нибудь посоветовать, как я могу разобрать эти данные? Строка выглядит следующим образом. Следующая запись - объект с той же структурой.Обработка нескольких объектов JSON в одном файле

{"purchase": 
    { 
    "amount": 34.595399, 
    "uid": 1282907706, 
    "user": 
      { 
       "id": xxxx 
       "name": "xxxx" 
      }, 
    "dailycount": 135.82373100000001, 
    "productdetails": 
    { 
      "type": "shoes" 
    }, 
    "details": 
    { 
      "gender": "male" 
    }, 
    "createdin": "Asia/Tokyo", 
    "id": 147707740, 
    "comments": []}} 

ответ

3

Не могли бы вы использовать Поиск & Заменить в текстовом редакторе? Я имею в виду, если у вас есть кусок кода, как это:

{ 
    "a" : "b", 
    "c" : "d" 
} 
{ 
    "a" : "e", 
    "c" : "f", 
} 

Вы можете включить его с помощью функции поиска для }\s*{ последовательности и замены с }, { последовательности на что-то вроде этого:

[ 
{ 
    "a" : "b", 
    "c" : "d" 
}, 
{ 
    "a" : "e", 
    "c" : "f", 
} 
] 
4

Проблема , конечно же, что у вас нет действительного объекта json.

irb(main):004:0> JSON.parse("{'foo':'bar'},{'foo':'baz'}") 
JSON::ParserError: 705: unexpected token at '{'foo':'bar'},{'foo':'baz'}' 
    from /usr/lib/ruby/gems/1.8/gems/json-1.4.6/lib/json/common.rb:146:in `parse' 
    from /usr/lib/ruby/gems/1.8/gems/json-1.4.6/lib/json/common.rb:146:in `parse' 
    from (irb):4 

Итак, я хотел бы добавить «„ключа“: [» и «]» до конца последней фигурной скобки. чтобы сделать его действительным json.

irb(main):018:0> json = '{"key" : [{"foo":"bar"}, {"foo":"baz"}]}' 
=> "{\"key\" : [{\"foo\":\"bar\"}, {\"foo\":\"baz\"}]}" 
irb(main):019:0> JSON.parse json 
=> {"key"=>[{"foo"=>"bar"}, {"foo"=>"baz"}]} 
Смежные вопросы