意外的符号:来自json文件的COMMA错误

时间:2016-06-29 05:31:32

标签: json

我使用Talend ETL Tool并从json文件中提取数据并将它们存储在Mysql数据库中。

但是我在第一次读json的时候得到了错误。为了阅读json我使用tExtractJSONFileds组件。

我确定在talend etl工具中设置的配置是正确的。我相信json文件中存在一些问题。

提取组件时显示错误

Exception in component tExtractJSONFields_1
javax.xml.stream.XMLStreamException: java.io.IOException: Unexpected symbol: COMMA
    at de.odysseus.staxon.base.AbstractXMLStreamReader.initialize(AbstractXMLStreamReader.java:218)
    at de.odysseus.staxon.json.JsonXMLStreamReader.<init>(JsonXMLStreamReader.java:65)
    at de.odysseus.staxon.json.JsonXMLInputFactory.createXMLStreamReader(JsonXMLInputFactory.java:148)
    at de.odysseus.staxon.json.JsonXMLInputFactory.createXMLStreamReader(JsonXMLInputFactory.java:44)
    at de.odysseus.staxon.base.AbstractXMLInputFactory.createXMLEventReader(AbstractXMLInputFactory.java:118)

我不知道如何处理JSON,所以对于这个错误,任何人都可以帮我解决JSON文件中的错误吗?

是否有任何值作为NULL或其他值传递?

示例JSON

[
    [, {
        "tstamp": "123456",
        "event": "tgegfght",
        "is_duplicate": false,
        "farm": "dyhetygdht",
        "uid": "tutyvbrtyvtrvy",
        "clientip": "52351365136",
        "device_os_label": "MICROSOFT_WINDOWS_7",
        "device_browser_label": "MOZILLA_FIREFOX",
        "geo_country_code": "MA",
        "geo_region_code": "55",
        "geo_city_name_normalized": "agadir",
        "referer": "www.abc.com",
        "txn": "etvevv5r",
        "txn_isnew": true,
        "publisher_id": 126,
        "adspot_id": 11179502,
        "ad_spot": 5188,
        "format_id": 1611,
        "misc": {
            "PUBLISHER_FOLDER": "retvrect",
            "NO_PROMO": "rctrctrc",
            "SECTION": "evtrevr",
            "U_COMMON_ALLOW": "0",
            "U_Auth": "0"
        },
        "handler": "uint"
    }, , ]

提前致谢!!

2 个答案:

答案 0 :(得分:0)

由于第二行和最后一行上的虚假额外逗号,您的示例json无效json。 Json只允许使用逗号向量或对象的BETWEEN元素,并且不允许使用空元素。

答案 1 :(得分:0)

您的示例json中有额外的空逗号。

您的示例Json应该看起来像

final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
      @Override
      public void run() {
        AsyncTask.cancel();
      }
    }, 1);

OR

  [{
        "tstamp": "123456",
        "event": "tgegfght",
        "is_duplicate": false,
        "farm": "dyhetygdht",
        "uid": "tutyvbrtyvtrvy",
        "clientip": "52351365136",
        "device_os_label": "MICROSOFT_WINDOWS_7",
        "device_browser_label": "MOZILLA_FIREFOX",
        "geo_country_code": "MA",
        "geo_region_code": "55",
        "geo_city_name_normalized": "agadir",
        "referer": "www.abc.com",
        "txn": "etvevv5r",
        "txn_isnew": true,
        "publisher_id": 126,
        "adspot_id": 11179502,
        "ad_spot": 5188,
        "format_id": 1611,
        "misc": {
            "PUBLISHER_FOLDER": "retvrect",
            "NO_PROMO": "rctrctrc",
            "SECTION": "evtrevr",
            "U_COMMON_ALLOW": "0",
            "U_Auth": "0"
        },
        "handler": "uint"
    }]