Member 14032301 Ответов: 1

Студия Android JSON и обработать ответ в формате JSON


i have Asp.net Api to get Json Response Like This "{\"UserID\":5,\"UserName\":\"asd\",\"Password\":\"asd\",\"Email\":\"ss@asd\",\"PhoneNumber\":\"1213\",\"Logtit\":0.0,\"Latitle\":0.0,\"OfGroup\":\"a \"}"

Haw can i handle this Json response in Android Studio Using Volley Lib This My Code


Что я уже пробовал:

<pre>public class MainActivity extends AppCompatActivity {


RequestQueue  requestqueue;
Button start;
TextView textView;
EditText ee;
public String givenValue = ee.getText().toString();
public String URL = "http://localhost:61511:8010/api/Feedback/5" ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    requestqueue=Volley.newRequestQueue(this);
   final Button start =(Button)findViewById(R.id.btnget);
   final TextView textView =(TextView)findViewById(R.id.mTextView);
   final EditText ee =(EditText)findViewById(R.id.idtxt) ;
    start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, URL, null, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        JSONArray jsonArray = response.getJSONArray("User");
                        for(int i= 0 ;i < jsonArray.length();i++){
                            JSONObject User = jsonArray.getJSONObject(i);

                        }
                    }catch (JSONException e ) {
                        e.printStackTrace();
                    }
                }

            },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            Log.e("Volley", "ERROR");
                        }
                    }
            );
            requestqueue.add(jsonObjectRequest);}
    });
}

David Crow

В чем проблема?

Member 14032301

Хоу могу ли я справиться с этим ответом Json в Android Studio используя Volley Lib это мой код
и вставьте данные в Sqlite, чтобы приложение работало в автономном режиме

David Crow

В onResponse() метод, делает response на самом деле содержат символы обратной косой черты? Если нет, то это должно выглядеть примерно так:

{
    "UserID":5,
    "UserName":"asd",
    "Password":"asd",
    "Email":"ss@asd",
    "PhoneNumber":"1213",
    "Logtit":0.0,
    "Latitle":0.0,
    "OfGroup":"a "
}
И ваш код для извлечения различных ключей будет выглядеть примерно так:

String userID = response.getString("UserID");
String userName = response.getString("UserName");
String pwd = response.getString("Password");
...

Richard Deeming

Похоже, что вы храните пароли в обычном тексте. Не делай этого!

Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]

Есть НИКОГДА уважительная причина для возврата им пароля пользователя.

И учитывая другие детали, которые вы возвращаете, я надеюсь, что вы добавили код на сервере, чтобы гарантировать, что запрос поступает от аутентифицированного пользователя, который имеет разрешение на просмотр этих деталей. Если нет, то вы будете оштрафованы за нарушение GDPR и других законов о защите данных.

1 Ответов

Рейтинг:
0

Afzaal Ahmad Zeeshan

Volley-это просто интерфейс для управления сетевым трафиком управляемым способом, он не будет делать много для вас, чтобы проанализировать и сгенерировать ответ. Вам нужно будет использовать библиотеку для анализа JSON—видеть эта ссылка на Android разработчика[^] веб-сайт, чтобы увидеть, как они это демонстрируют—а что касается SQLite, то у Android есть еще один удивительный инструмент, Room database ORM, таким образом, Вы будете использовать все от Google, начиная с управления запросами Volley, затем Gson и, наконец, Room для сохранения данных в базе данных.

Я рекомендую вам использовать Gson для разбора этой строки на объекты. Однако это также требует, чтобы вы сначала создали класс, который соответствует подписи этого документа JSON, вот что вам нужно,

/* 
{"UserID\":5,\"UserName\":\"asd\",\"Password\":\"asd\",\"Email\":\"ss@asd\",\"PhoneNumber\":\"1213\",\"Logtit\":0.0,\"Latitle\":0.0,\"OfGroup\":\"a \"}"
*/
public class User {
    // I won't go in encapsulation, you can set these to private
    // and create getter/setters.
    public int UserId;
    public String UserName;
    public String Password;
    public String Email;
    public String PhoneNumber;
    public double Logtit;
    public double Latitle;
    public String OfGroup;
}
Теперь вы можете пойти дальше и использовать Gson для анализа документа JSON в качестве объекта User тип.
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();

// Capture the JSON document as a variable, I do not know where and how you do that.
User user = gson.fromJson(jsonString, User.class);
Таким образом, вы можете преобразовать JSON в объект времени выполнения. Смотрите здесь пример этого, http://tutorials.jenkov.com/java-json/gson.html[^]

GitHub - google/gson: библиотека сериализации/десериализации Java для преобразования объектов Java в JSON и обратно[^]
Библиотека Персистентности Комнаты  |  Разработчики Android[^]