#java #android #json
#java #Android #json
Вопрос:
Я хотел бы вернуть строку из оператора IF. Ниже приведен код. Я анализирую объект JSON, и мне нужно вставить данные в таблицу sql lite.
if (object.has("message")) {
JSONObject message = object.getJSONObject("message");
String newtype_mod = object.getJSONObject("message").getString("type");
String newcontent_mod = object.getJSONObject("message").getString("content");
objSample = new GetSetMethod();
objSample.setnewcontent_mod(newcontent_mod);
objSample.setnewtype_mod(newtype_mod);
Log.v("##" newcontent_mod, "V " newtype_mod);
}
objSample = new GetSetMethod();
objSample.setNewreportid(newreportid);
objSample.setnewcontent_mod(newcontent_mod);
objSample.setnewtype_mod(newtype_mod);
Log.v("" newcontent_mod, "" newtype_mod);
Как вы, должно быть, поняли, newcontent_mod и newtype_mod не будут доступны из оператора IF . И мне обязательно нужен оператор IF.
Я понимаю, что вопрос является основным. Пожалуйста, помогите новичку!
Спасибо!
Ответ №1:
Разве вы не можете просто объявить их вне if?
String newtype_mod = "";
String newcontent_mode = "";
if ((object.has("message"))) {
//
// do stuff here
//
}
// continue as before...
Ответ №2:
Вы можете объявить его вне оператора if и просто присвоить значение этим переменным
например:
String newtype_mod="";
String newcontent_mod="";
if ((object.has("message")))
{
JSONObject message = object.getJSONObject("message");
newtype_mod = object.getJSONObject("message")
.getString("type");
newcontent_mod = object.getJSONObject("message")
.getString("content");
objSample = new GetSetMethod();
objSample.setnewcontent_mod(newcontent_mod);
objSample.setnewtype_mod(newtype_mod);
Log.v("##" newcontent_mod,"V " newtype_mod);
}
в противном случае
Вы можете объявить оба на глобальном уровне, т.е. переменные уровня класса
Комментарии:
1. «Вы можете объявить его вне оператора if и просто присвоить значение этим переменным» Эта строка отсортировала мою проблему, спасибо
Ответ №3:
Объявите 2 строки вне оператора if, например
String newcontent_mod,newtype_mod;
if ((object.has("message"))) {
JSONObject message = object.getJSONObject("message");
newtype_mod = object.getJSONObject("message")
.getString("type");
newcontent_mod = object.getJSONObject("message")
.getString("content");
objSample = new GetSetMethod();
objSample.setnewcontent_mod(newcontent_mod);
objSample.setnewtype_mod(newtype_mod);
Log.v("##" newcontent_mod,"V " newtype_mod);
}
Комментарии:
1. Это не будет компилироваться — после предложения if локальная переменная newcontent_mod / newtype_mod, возможно, не была инициализирована.