3 вопроса по работе с json в java, как решить данную задачу?
У меня несколько трудностей, которые я не смог решить самостоятельно, обо всем по порядку.
Есть json file, который я показываю в ListView, и он выглядит следующим образом:
countryData.json
{
"CountryData": [
{
"Name": "Bangladesh",
"Unicode": "??",
"Dial": "880"
},
{
"Name": "Belgium",
"Unicode": "??",
"Dial": "32"
}...
]
}
- java code
ArrayList<HashMap<String, String>> arrayList = new ArrayList<>();
JSONObject jsonObject;
JSONArray jsonArray;
String jsonFile;
String unicode;
String name;
String dial;
try {
InputStream stream = getAssets().open("json/countryData.json");
int size = stream.available();
byte[] buffer = new byte[size];
stream.read(buffer);
stream.close();
jsonFile = new String(buffer);
jsonObject = new JSONObject(jsonFile);
jsonArray = jsonObject.getJSONArray("CountryData");
for (int i = 0; i < jsonArray.length(); i++) {
jsonObject = jsonArray.getJSONObject(i);
unicode = jsonObject.getString("Unicode");
name = jsonObject.getString("Name");
dial = jsonObject.getString("Dial");
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("Unicode", unicode);
hashMap.put("Name", name);
hashMap.put("Dial", "+"+dial);
arrayList.add(hashMap);
}
} catch (JSONException | IOException e) {
Toast.makeText(getApplicationContext(), "json file is not found", Toast.LENGTH_LONG).show();
}
- адаптер, который передает данные в
ListView
adapter = new SimpleAdapter(
LoginActivity.this, arrayList, R.layout.simple_layout,
new String[] {"Unicode", "Name", "Dial"},
new int[] {R.id.countryUnicode,R.id.countryName, R.id.countryCodeList}
);
selectCountry.setAdapter(adapter);
- результат
Код работает, но не совсем корректно.
Вернемся к вопросам.
Список стран в ListView выходит по порядку, как написано в Json файле, как сделать, чтобы показывал по алфавиту от А до Я?
Когда я выбираю из списка какую-нибудь страну, в
Editext(TextInputLayout) возвращается весь объект{Unicode=??, Dial=+7, Name=Russia}Как вывести только название выбранной страны?Как получить страну автоматически в поле
Выбор страны, когда пользователь вводит код страны в полеКод страныи наоборот?
Любая помощь приветствуется.

