如何在Retrofit中使用没有任何对象的单个元素解析JSON数组?

时间:2016-08-29 11:46:05

标签: android json retrofit gson

我正在使用使用GSON进行解析的Retrofit。服务器将检查我发送的参数并返回两个响应。 如果参数有效,我收到以下回复

[
  true
]

如果它无效,那么我得到回复,

   [
      "Sorry, <em class=\"placeholder\">names@gmail.inp</em> is not recognized as a user name or an e-mail address."
    ]

这是我正在使用的通话方法。

@覆盖

public void onResponse(Call<String> call, Response<String> response) {
mProgressBar.setVisibility(View.GONE);
    Log.d("Response ", ""+response);


}

这里是response.body给我null。但是有一个响应。它可以在OKHttp Log中查看。

4 个答案:

答案 0 :(得分:1)

你可以试试这个

MySqlConnection conn = new MySqlConnection("Server=localhost;Database=ltdb;UID=root;Password=1234;port=3306");
try
{
    string command = "(INSERT INTO invoice companyName,rate,svatNo,tinNo,line1,line2,city)VALUES('" + this.txtname.Text + "','" + this.txtrate.Text + "','" + this.txtsvatno.Text + "','" + this.txttinno.Text + "','" + txtadline1.Text + "','" + txtadline2.Text + "','" + txtcity.Text + "');";
    conn.Open();
    MySqlCommand cmd = new MySqlCommand(command, conn);
    cmd.ExecuteNonQuery();
    conn.Close();
    MessageBox.Show("Saved !");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

答案 1 :(得分:0)

JSONArray jarray = new JSONObject(jsonString);
for (int i = 0; i < jarray.length(); i++) {
      String string = jarray.getString(i);
      log.e("String",string);
}

工作得很好。请试试这个。

答案 2 :(得分:0)

您可以使用 Gson 提供的run()。它会将json输入解析为动态JsonElement。

查看MByD示例:

JsonParser

答案 3 :(得分:0)

因为服务器返回不同的代码

你可以尝试

吗?
Call<Void> 

并检查响应代码 这可能现在有效,直到你知道什么是错的,无法解析任何事情,所以它不应该导致崩溃

///////

你试过

吗?
Call<ArrayList<String>>

你确定服务器在两种情况下都返回200吗?