2016-10-19 2 views
0

У меня есть строка json из Google Analytics, как показано ниже. Мое требование - сместить объект «страница» на уровне массива hits. В принципе, «страница» будет похожа на «хиты» в виде массива на том же уровне, что и «хиты».Как перемещать объект JSON на один уровень вверх

{ 
    "hits":[ 
    { 
    "hitNumber":"1", 
    "time":"0", 
    "hour":"10", 
    "minute":"29", 
    "isInteraction":true, 
    "page":{ 
     "pagePath":"www.scotiabank.com/ca/en/0,,2,00.html", 
     "hostname":"www.scotiabank.com", 
     "pageTitle":"Personal Banking | Scotiabank" 
    }   
     } 
    ], 
    "fullVisitorId":"65778887038843" 
} 

Просьба помочь. Спасибо

+0

какой язык программирования? JSON может появиться почти повсюду сегодня :) – dahrens

+0

:-) Извините, мой плохой. Он находится на Java, используя библиотеку GSON. –

+0

редко используют java, но [на основе документов] (https://github.com/google/gson/blob/master/UserGuide.md#custom-serialization-and-deserialization) кажется, что вам нужно написать собственный десериализатор , – dahrens

ответ

0

Вы должны сделать некоторые программы для реструктуризации json-документа. Это похоже на общее деловое дело, чтобы изменить определенный элемент внутри json-документа на что-то еще внутри того же документа.

Нелегко реализовать десериализатор для достижения этого. Я только что реализовал функцию для этого в Oson library. Игнорируйте этот ответ, если вы хотите только решение Gson.

String json = OsonConvert.changeTo(json, "hits.page", "pages"); 

Примечание: Ваш JSON документ Json, «hits.page» ваш оригинальная точка-путь элемента, «страница» это новый атрибут, который необходимо использовать для данных этого элемента (Если найдено более одного значения, новым значением будет массив)

+0

Oson может быть отличным, но работает только для Java 8. – banterCZ

Смежные вопросы