Androidの初心者で、助けが必要です。Androidからのログイン画面
{
"Id": 1,
"Name": "user",
"userId": 4,
"active": true,
"ProfileId": 1,
"Tema": "green",
"Language": "english",
"success": true,
"error": false
}
JSON 2:このためには
public class MainActivity extends AppCompatActivity {
EditText usernameWidget;
EditText passwordWidget;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
usernameWidget = (EditText) findViewById(R.id.tv_username);
passwordWidget = (EditText) findViewById(R.id.tv_password);
}// END ON CREATE
public class DownloadTask extends AsyncTask<String, Void, String> {
String message = "message";
String loginSuccess;
String Id = "Id";
@Override
protected String doInBackground(String... urls) {
String result = "";
URL url;
HttpURLConnection urlConnection = null;
try {
url = new URL(urls[0]);
urlConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(inputStream);
int data = reader.read();
while (data != -1){
char current = (char) data; // each time creates a char current
result += current;
data = reader.read();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
} // END doInBackground
//Method called when the doInBack is complete
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
try {
JSONObject jsonObject = new JSONObject(result);
Log.i("***JSON ITSELF***", result);
loginSuccess = jsonObject.getString("success");
Log.i("*****LOGIN SUCCESS*****", loginSuccess);
message = jsonObject.getString("message");
Log.i("*****MESSAGE*****", message);
Id = jsonObject.getString("Id");
Log.i("*****ID*****", pessoaFisicaId);
}catch(JSONException e) {
e.printStackTrace();
}// END CATCH
if (loginSuccess.contains("true")){
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
startActivity(intent);
}else if (loginSuccess.contains("false")){
Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show();
}
}// END POST EXECUTE
}// END Download Task
public void login(View view) {
String user = usernameWidget.getText().toString();
String pass = passwordWidget.getText().toString();
String stringJSON = "*URL*login=" + user + "&senha=" + pass;
DownloadTask task = new DownloadTask();
task.execute(stringJSON);
Log.i("*****JSON URL*****", stringJSON);
}// END LOGIN
}// END MAIN
:
loginSuccess = jsonObject.getString("success");
message = jsonObject.getString("message");
Id = jsonObject.getString("Id");
これは私のコードである
{"message":"no user or password","success":false,"erroAplicacao":false}
私はこのようになりますJSONを持っています
json2(別のURL)からToastとしてメッセージ(「no user or password」)が届きました。
私は順序を変更した場合に、言うことができます:私はメッセージを取得ドント
loginSuccess = jsonObject.getString("success");
Id = jsonObject.getString("Id");
message = jsonObject.getString("message");
。実際、DownloadTaskクラスの先頭にあるStringメッセージから値 "message"を取得します。
jsonは2つの値を取得しているようですが、私が最初に求める値です。
一つのことはしかし、ユーザまたはパスワードが間違っている場合にのみ、JSONメッセージ(json2)があることであるということである:私のJSONは配列のJSONに変換するカントので
{"message":"no user or password","success":false,"erroAplicacao":false}
を(私が試したとなりました私は何をすべきですか?
が、これはよりよく理解JSONで私をたくさん助けた、ありがとうございます。 xD – BlitzkriegBlue
もう一度、たくさんのthx。あなたの答えのために、ここでもっと便利で簡単なコーディングのためにjsonを修正することに決めました。 xD – BlitzkriegBlue
@ArthurAbreu問題ありません!この回答が役に立ちましたら、このページの正しい回答として選択してください。 –