2016-09-06 8 views
0

私は以下のヘルプが必要です。アナリティクスからJSONを解析中にエラーが発生しました

私は、フォーム以下でのGoogleアナリティクスからJSONデータがあります。私が持っている

{"visitNumber":"3","fullVisitorId":"33283173096445"} 
{"visitNumber":"2","fullVisitorId":"58516104158964"} 
...............(upto 100k records) 

とJavaのコードは次のとおりです。

GSONライブラリに基づいて
JsonParser parser = new JsonParser(); 
JsonElement root = parser.parse(jsonData); 

。これを実行している間、私は "MalformedJsonException"を取得しています。

com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected EOF at line 1 column 53 
+0

ここではエラーがはっきりしている可能性はありません。これは不正な形式のJSON(単一のドキュメントとして)です。 "最高100k"のJSON文書を別々に分けると、その罰金がかかりますが、一緒になってそれが不正です。 – rmlan

+0

各レコードは、(カンマ)で区切る必要があります。 [{"visitNumber": "3"、 "fullVisitorId": "33283173096445"}、 {"visitNumber": "2"、 "fullVisitorId": "58516104158964"} これは次のようになります。有効なJSONになる – dosdebug

+0

@ssc提案した方法でフォーマットしました。しかし、私はGoogleアナリティクスからこの回答を得ています。約100,000件のレコードは、[、]をすべて挿入することは不可能です。それを解析する前にプログラムで修正する方法は? –

答えて

0

私は以下のように試してみました。

 BufferedReader br = new BufferedReader(fileReader); 
     String line = br.readLine(); 
     JsonParser parser = new JsonParser(); 
     JsonObject root = (JsonObject)parser.parse(line);; 
0

各行を解析し、手動で配列に追加する必要があります。 split the lineString.split()(下図)を使用するか、ファイルを1行ずつ読み込んで、手動で配列に追加してください。

var data = jsonData.split("\\r?\\n"); 
var finalData = []; 

for (var i = 0, len = data.length; i < len; i++) 
{ 
    JsonParser parser = new JsonParser(); 

    JsonElement root = parser.parse(data[i]); 
    finalData.push(root); 
} 

console.log(finalData); 
関連する問題