2016-10-19 3 views
0

私は以下のようにGoogleアナリティクスのJSON文字列を持っています。私の要件は、ヒット配列のレベルで "page"オブジェクトをシフトすることです。基本的に、 "ページ"は "ヒット"と同じレベルの配列としての "ヒット"に似ています。JSONオブジェクトを1レベル上に移動するには

{ 
    "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

:-)申し訳ありませんが悪いです。それはGSONライブラリを使用してJavaにあります。 –

+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

関連する問題