@Seilordp

Как убрать кавычки из JSON?

Есть такой
JSON
{"Binding":"Electronics","Brand":"Amazon","Color":"Black","EAN":"0841667123295","EANList":{"EANListElement":"0841667123295"},"Feature":["The next generation of our best-reviewed Fire tablet, with up to 12 hours of battery life, a vibrant 8" HD display, a 1.3 GHz quad-core processor, 1.5 GB of RAM, and Dolby Audio. More durable than the latest iPad.","16 or 32 GB of internal storage and a microSD slot for up to 256 GB of expandable storage","Now with Alexa, for quick access to the information and entertainment you want. Ask questions, play music, check your calendar, get the news, weather, and more - just press the home button and ask.","Enjoy millions of movies, TV shows, songs, Kindle eBooks, apps and games - including Netflix, Facebook, HBO, Spotify, and more","Prime members get unlimited access to over a thousand books and magazines, millions of songs, and thousands of movies and TV episodes - at no additional cost","Watch downloaded videos anywhere with a Prime membership, Netflix plan, or Showtime subscription","Enhance your entertainment experience with features you only get from Amazon, including ASAP, X-Ray, On Deck, Blue Shade, and FreeTime Parental Controls"],"HardwarePlatform":"Unknown","ItemDimensions":{"Height":"40","Length":"840","Weight":"81","Width":"500"},"Label":"Amazon","ListPrice":{"Amount":"7999","CurrencyCode":"USD","FormattedPrice":"$79.99"},"Manufacturer":"Amazon","Model":"SX034QT","MPN":"53-005678","OperatingSystem":"Fire OS","PackageDimensions":{"Height":"228","Length":"1598","Weight":"140","Width":"1000"},"PackageQuantity":"1","PartNumber":"53-005678","ProductGroup":"Amazon Tablets","ProductTypeName":"AMAZON_TABLET","Publisher":"Amazon","ReleaseDate":"2017-06-06","Studio":"Amazon","Title":"All-New Fire HD 8 Tablet with Alexa, 8" HD Display, 16 GB, Black - with Special Offers","UPC":"841667123295","UPCList":{"UPCListElement":"841667123295"}}


В значениях встречаются другие кавычки, из-за чего распарсить JSON не выходит. Кавычек может быть несколько. С базой уже ничего не сделать, так как в ней более 40 000 000 позиций. Понимаю, что сделал ошибку, но очень хочется исправить ее.

Наткнулся тут на пост, где такая же проблема, но там исправили само API, у меня такой возможности нет.

Прошу помощи.
  • Вопрос задан
  • 2030 просмотров
Пригласить эксперта
Ответы на вопрос 2
GTRxShock
@GTRxShock
Full-stack developer (Symfony, Angular)
не пойму в чем проблема, просто возьмите функцию из ответов на вопрос, который вы привели)
echo preg_replace(
    '/(:"[^#:]*?)"([^#:]*?)"([^#:]*?"[,}])/', 
    '$1\'$2\'$3', 
    '{"status": "success","history": [{"tx":"5204759","status":"SUCCESS","date":"04.07.2017","time":"21:53:27","cash":"10,00руб.","orig":"7 000,00руб.","provider":"WebmoneyОАОБанк"ККБ"","opnum":"R14702331","comment":""},{"tx":"5204759","status":"SUCCESS","date":"04.07.2017","time":"21:53:27","cash":"10,00руб.","orig":"7 000,00руб.","provider":"WebmoneyОАОБанк"ККБ"","opnum":"R14702331","comment":""}]}'
);
Ответ написан
Stalker_RED
@Stalker_RED
В вашем примере достаточно сделать замену "(кавычка и пробел) на \"
Вероятно среди 40 млн записей есть и другие проблемные места, нужно больше примеров битых строк.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы