嗨,在下面的代码中如何从用户对象获取以下 JSON 响应的名称。想要显示名称和设置到微调器适配器。
谁能帮我
预期输出:
Admin Administrator
Ganeshprasad S etc
Run Code Online (Sandbox Code Playgroud)
回复:
{
"name": "assigned_user_id",
"label": "Assigned To",
"mandatory": true,
"type": {
"name": "owner",
"users": {
"19x1": "Admin Administrator",
"19x5": "Ganeshprasad S",
"19x6": "Balaji RR",
"19x7": "Kiran Thadimarri",
"19x8": "Sridhar Balakrishnan",
"19x9": "Shilpa MK",
"19x10": "Velmurugan N",
"19x11": "Aamir Khanna",
"19x12": "Jamir Abbas Pinjari",
"19x13": "Syed Shadab Ashraf",
"19x14": "Shahul Hameed",
"19x15": "Manjula C",
"19x16": "Keerthi Vasan L",
"19x17": "Lochan Jyoti Borgohain",
"19x18": "Rajkumar Sanatomba Singh",
"19x19": "Krishna Pandey",
"19x20": "Nabajit Pathak",
"19x21": "Manoranjan Ningthoujam",
"19x22": "Pravin Karbhari Ahire",
"19x23": "Pratap Kumar Choudhary"
}
}
}
Run Code Online (Sandbox Code Playgroud)
下面是代码。微调器没有显示任何内容
爪哇:
if (name.equals("assigned_user_id")) {
String jsondata ="";
try {
JSONObject jsonobj = new JSONObject(jsondata);
JSONObject type = jsonobj.getJSONObject("type");
JSONObject usr = type.getJSONObject("users");
Iterator<String> keys = usr.keys();
while(keys.hasNext()) {
String key = keys.next();
if (jsonobj.get(key) instanceof JSONObject) {
String v = usr.getString("19x1");
account_manger.add(v);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_item, account_manger);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinneraccountManager.setAdapter(dataAdapter);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
假设您的 JSON 数据在字符串中
String jsondata ;
JSONObject jsonobj = new JSONObject(jsondata);
Run Code Online (Sandbox Code Playgroud)
由于这个 json 对象有很多属性,所以我们将获得类型为 Object 的属性“type”,因此我们将创建另一个 JSONObject 对象
JSONObject type = jsonobj.getJSONObject("type");
Run Code Online (Sandbox Code Playgroud)
在这个类型的 json 对象中,我们有两个属性 name 和 users,其中 user 是另一个对象,所以我们将从类型 object 中获取 users 对象
JSONObject usr = jsonobj.getJSONObject("users");
Iterator<String> keys = usr.keys();
while(keys.hasNext()) {
String key = keys.next();
if (jsonObject.get(key) instanceof JSONObject) {
//print here
}
}
// String n1 = usr.getString("19x1");
// String n2 = usr.getString("19x5");
// String n3 = usr.getString("19x6");
//and So on......
Run Code Online (Sandbox Code Playgroud)
为 Spinner Android 创建 XML
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Spinner
android:id="@+id/spinner"
android:layout_width="149dp"
android:layout_height="40dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.502"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.498" />
Run Code Online (Sandbox Code Playgroud)
而 MainActivity 代码是
public class MainActivity extends AppCompatActivity implements
AdapterView.OnItemSelectedListener {
String[] names = { n1,n2,n3};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Getting the instance of Spinner and applying OnItemSelectedListener on it
Spinner spin = (Spinner) findViewById(R.id.spinner);
spin.setOnItemSelectedListener(this);
//Creating the ArrayAdapter instance having the list
ArrayAdapter aa = new ArrayAdapter(this,android.R.layout.simple_spinner_item,country);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//Setting the ArrayAdapter data on the Spinner
spin.setAdapter(aa);
}
//Performing action onItemSelected and onNothing selected
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {
Toast.makeText(getApplicationContext(),names[position] , Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |