Куст: разбор JSON содержит \"

Мои данные JSON:

 {
    "content":"{\"type\":3,\"from\":\"home\"}",
    "id":"239",
    "idtype":"0",
    "timestamp":"1547957367281",
    "type":"0"
}

Я хочу получить это в таблице json_data в следующем формате:

+-------------+  
| from        |  
+-------------+  
| home        |  
+-------------+

Как мне использовать функцию разнесения отсюда, чтобы получить желаемый результат?

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
0
55
1

Ответы 1

Вы можете использовать regexp_replace для удаления \, также следует удалить " до { и после }. Используйте get_json_object или json_tuple для извлечения атрибутов. Тестирование на вашем примере данных:

select get_json_object(json,'$.content.from') as `from`
from
(
select
regexp_replace(
regexp_replace(
regexp_replace(
'{"content":"{\"type\":3,\"from\":\"home\"}",
    "id":"239",
    "idtype":"0",
    "timestamp":"1547957367281",
    "type":"0"
}'               --original data
,'\\\"','\"')    --replace \" with "
,'\\"\\{','{')   --remove " before {
,'\\}\\"','\\}') --remove " after } --these last two can be combined
as json
)s
;

Вывод:

OK
from
home
Time taken: 0.329 seconds, Fetched: 1 row(s)

Лучше проверить эти regexp_replaces один за другим, чтобы убедиться, что они работают должным образом. Надеюсь, вы поняли идею

Другие вопросы по теме