在JsonObject上使用getAsJsonArray

时间:2015-11-08 21:47:58

标签: java post gson

我将JsonObject转换为JsonArray时遇到问题。我使用Ion和Gson库。

我想通过postmetod获取一些信息给sqlite。

    [2015-11-08 22:11:58]: array (
  0 => 
  array (
    '2014-01' => 
    array (
      'income' => '78294.34',
      'expense' => '1000',
      'result' => '77294.34',
    ),
    '2014-02' => 
    array (
      'income' => '3245.34',
      'expense' => '1000',
      'result' => '2245.34',
    ),
    '2014-03' => 
    array (
      'income' => '5637.1',
      'expense' => '1000',
      'result' => '4637.1',
    ),
    '2014-04' => 
    array (
      'income' => '89345.55',
      'expense' => '1000',
      'result' => '88345.55',
    ),
    '2014-11' => 
    array (
      'income' => '9348',
      'expense' => '1000',
      'result' => '8348',
    ),
    '2014-12' => 
    array (
      'income' => '384836',
      'expense' => '1000',
      'result' => '383836',
    ),
  ),
  1 => 
  array (
    2014 => 
    array (
      'income' => '570706.33',
      'expense' => '6000',
      'result' => '564706.33',
    ),
  ),
)

我正在尝试将日期,收入,费用和结果带到数据库。我没有设置double to database的问题。

//this normal work, show me string with "0"
System.out.println(jsonElements.get(0).toString());
//but i have problem when im using
jsonElements.get(0).getAsJsonArray().get(0).get(result).toString();

我不知道该怎么做。在logcat我有错误“这不是jsonarray”。我将非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我找到了这样做的方法。我很抱歉做问题。我希望它会对某人有所帮助。

System.out.println(jsonElements.get(0).getAsJsonObject().entrySet().iterator().next().getKey());
System.out.println(jsonElements.get(0).getAsJsonObject().entrySet().iterator().next().getValue().getAsJsonObject().get("income").toString());
System.out.println(jsonElements.get(0).getAsJsonObject().entrySet().iterator().next().getValue().getAsJsonObject().get("expense").toString());
System.out.println(jsonElements.get(0).getAsJsonObject().entrySet().iterator().next().getValue().getAsJsonObject().get("result").toString());