Android 如何访问JSON数组的元素
下面给出的是我的JSON,我想访问“trips”JSON数组,并想将它放在数组列表中,以便在微调器中使用它。如何直接访问trips JSON数组并用作spinner的ArrayList 我的JSON:Android 如何访问JSON数组的元素,android,json,android-volley,Android,Json,Android Volley,下面给出的是我的JSON,我想访问“trips”JSON数组,并想将它放在数组列表中,以便在微调器中使用它。如何直接访问trips JSON数组并用作spinner的ArrayList 我的JSON: { "trips": [ 77 ], "status": { "message": "Successfully fetched the Open trip
{
"trips": [
77
],
"status": {
"message": "Successfully fetched the Open trips ",
"code": 200
}
}
我的活动课:
public class MainActivity extends AppCompatActivity implements Spinner.OnItemSelectedListener {
private Spinner spinner;
private ArrayList<String> trips;
private JSONArray result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
trips= new ArrayList<String>();
this.spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
loadtrip();
}
public void loadtrip() {
HashMap<String,String> params=new HashMap<String,String>();
{
params.put("systemId", "12");
params.put("customerId", "3513");
params.put("userId", "124");
params.put("tripType", "Open");
}
JsonObjectRequest stringRequest = new JsonObjectRequest(Request.Method.POST,config.DATA_URL, new JSONObject(params),
new Response.Listener<JSONObject>() {
public void onResponse(JSONObject response) {
try {
result = response.getJSONArray(config.JSON_ARRAY);
} catch (JSONException e) {
e.printStackTrace();
}
spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item,trips));
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) ;
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String item = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
公共类MainActivity扩展AppCompative实现Spinner.OnItemSelectedListener{
私人纺纱机;
私人旅行;
私人JSONArray结果;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
trips=新的ArrayList();
this.spinner=(spinner)findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(此);
loadtrip();
}
公共void loadtrip(){
HashMap params=新的HashMap();
{
参数put(“系统ID”、“12”);
参数put(“客户ID”、“3513”);
参数put(“用户ID”、“124”);
参数put(“tripType”、“Open”);
}
JsonObjectRequest stringRequest=新的JsonObjectRequest(Request.Method.POST、config.DATA\u URL、新的JSONObject(params),
新的Response.Listener(){
公共void onResponse(JSONObject响应){
试一试{
结果=response.getJSONArray(config.JSON_数组);
}捕获(JSONException e){
e、 printStackTrace();
}
setAdapter(新的ArrayAdapter(MainActivity.this,android.R.layout.simple_spinner_dropdown_item,trips));
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
}) ;
RequestQueue RequestQueue=Volley.newRequestQueue(this);
添加(stringRequest);
}
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
String item=parent.getItemAtPosition(position.toString();
Toast.makeText(parent.getContext(),“Selected:”+项,Toast.LENGTH_LONG.show();
}
未选择公共无效(AdapterView父级){
}
}
您可以直接从json数组的索引中获取值
JSONArray array = yourJsonObject.getJSONArray("trips");
for (int i=0; i<array.length(); i++) {
int value = array.getInt(i);
}
JSONArray数组=yourJsonObject.getJSONArray(“trips”);
对于(inti=0;i,您可以直接从json数组的索引中获取值
JSONArray array = yourJsonObject.getJSONArray("trips");
for (int i=0; i<array.length(); i++) {
int value = array.getInt(i);
}
JSONArray数组=yourJsonObject.getJSONArray(“trips”);
对于(inti=0;i请尝试以下操作
try {
result = response.getJSONArray("trips");
for(int i = 0; i < result.length(); i++){
trips.add(String.valueOf(result.getInt(i)));
}
} catch (JSONException e) {
e.printStackTrace();
}
试试看{
结果=response.getJSONArray(“trips”);
for(int i=0;i
试试下面的方法
try {
result = response.getJSONArray("trips");
for(int i = 0; i < result.length(); i++){
trips.add(String.valueOf(result.getInt(i)));
}
} catch (JSONException e) {
e.printStackTrace();
}
试试看{
结果=response.getJSONArray(“trips”);
for(int i=0;i
声明int值;
并解析JSON
:
new Response.Listener<JSONObject>() {
public void onResponse(JSONObject response) {
try {
result = response.getJSONArray("trips");
for (int i=0; i<result.length(); i++) {
value = result.getInt(i);
trips.add(String.valueOf(value));
}
} catch (JSONException e) {
e.printStackTrace();
}
spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item,trips));
newresponse.Listener(){
公共void onResponse(JSONObject响应){
试一试{
结果=response.getJSONArray(“trips”);
对于(int i=0;i声明int值;
和解析JSON
:
new Response.Listener<JSONObject>() {
public void onResponse(JSONObject response) {
try {
result = response.getJSONArray("trips");
for (int i=0; i<result.length(); i++) {
value = result.getInt(i);
trips.add(String.valueOf(value));
}
} catch (JSONException e) {
e.printStackTrace();
}
spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item,trips));
newresponse.Listener(){
公共void onResponse(JSONObject响应){
试一试{
结果=response.getJSONArray(“trips”);
对于(int i=0;i当您在代码中使用config.JSON_数组键进行解析时,config.JSON_数组的值是多少。如果config.JSON_数组=“trips”,则使用config.JSON_数组替换静态“trips”键,否则按照我的静态键进行解析
只需使用以下代码更新您的代码:在本文中,我解析了trips-JSON数组,并将所有项添加到trips-ArrayList中
public class MainActivity extends AppCompatActivity implements Spinner.OnItemSelectedListener {
private Spinner spinner;
private ArrayList<String> trips;
private JSONArray result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
trips= new ArrayList<String>();
this.spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
loadtrip();
}
public void loadtrip() {
trips = new ArrayList<>();
HashMap<String,String> params=new HashMap<String,String>();
{
params.put("systemId", "12");
params.put("customerId", "3513");
params.put("userId", "124");
params.put("tripType", "Open");
}
JsonObjectRequest stringRequest = new JsonObjectRequest(Request.Method.POST,config.DATA_URL, new JSONObject(params),
new Response.Listener<JSONObject>() {
public void onResponse(JSONObject response) {
try {
result = response.optJSONArray("trips");
for(int i = 0; i < result.length(); i++){
trips.add(String.valueOf(result.getInt(i)));
}
} catch (JSONException e) {
e.printStackTrace();
}
spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item,trips));
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) ;
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String item = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
公共类MainActivity扩展AppCompative实现Spinner.OnItemSelectedListener{
私人纺纱机;
私人旅行;
私人JSONArray结果;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
trips=新的ArrayList();
this.spinner=(spinner)findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(此);
loadtrip();
}
公共void loadtrip(){
trips=新的ArrayList();
HashMap params=新的HashMap();
{
参数put(“系统ID”、“12”);
参数put(“客户ID”、“3513”);
参数put(“用户ID”、“124”);
参数put(“tripType”、“Open”);
}
JsonObjectRequest stringRequest=新的JsonObjectRequest(Request.Method.POST、config.DATA\u URL、新的JSONObject(params),
新的Response.Listener(){
公共void onResponse(JSONObject响应){
试一试{
结果=response.optJSONArray(“trips”);
for(int i=0;i