如果退出相同值的android studio,如何对json数组数据进行分组
我有这样的Json, 我想按sub_名称分组以获取手机阵列,移动操作(每个阵列具有相同的数据值,仅获取阵列中的一个)如果退出相同值的android studio,如何对json数组数据进行分组,android,json,Android,Json,我有这样的Json, 我想按sub_名称分组以获取手机阵列,移动操作(每个阵列具有相同的数据值,仅获取阵列中的一个) 创建ArrayList并添加数据。在每次添加第二项之前,请检查ArrayList是否具有相同的数据,或者是否在ArrayList大小的帮助下使用for循环 不管我对你的查询有什么了解,我都写了这个代码 import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import org.json
创建ArrayList并添加数据。在每次添加第二项之前,请检查ArrayList是否具有相同的数据,或者是否在ArrayList大小的帮助下使用for循环 不管我对你的查询有什么了解,我都写了这个代码
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ArrayList phones = new ArrayList<>();
ArrayList Mobile_Operation = new ArrayList<>();
String data = " category: {\n" +
" cate: [\n" +
" {\n" +
" sub_id: \"568\",\n" +
" sub_name: \"Phones\",\n" +
" ns_id: \"17002\",\n" +
" ns_name: \"Mobile Phone\"\n" +
" },\n" +
" {\n" +
" sub_id: \"568\",\n" +
" sub_name: \"Phones\",\n" +
" ns_id: \"18787\",\n" +
" ns_name: \"Other Phones\"\n" +
" },\n" +
" {\n" +
" sub_id: \"372\",\n" +
" sub_name: \"Mobile Operation\",\n" +
" ns_id: \"3650\",\n" +
" ns_name: \"Sim Card\"\n" +
" }\n" +
" ]\n" +
" }";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
JSONObject jsonObject = new JSONObject(data);
JSONObject categoryObject = jsonObject.getJSONObject("category");
JSONArray jsonArray = categoryObject.getJSONArray("cate");
for (int i = 0; i < jsonArray.length(); i++) {
String datal = ((JSONObject) jsonArray.get(i)).getString("sub_name");
if (datal.equalsIgnoreCase("Phones"))
phones.add(jsonArray.get(i));
else if (datal.equalsIgnoreCase("Mobile Operation"))
Mobile_Operation.add(jsonArray.get(i));
}
Toast.makeText(this,((JSONObject)phones.get(1)).getString("ns_name"),Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
}
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
公共类MainActivity扩展了AppCompatActivity{
ArrayList phones=新的ArrayList();
ArrayList Mobile_操作=新建ArrayList();
String data=“类别:{\n”+
“类别:[\n”+
“{\n”+
子单元id:“568\,\n”+
子单元名称:\'Phones\',\n+
ns\U id:“17002\,\n”+
“ns\U名称:\“手机\”\n”+
},\n+
“{\n”+
子单元id:“568\,\n”+
子单元名称:\'Phones\',\n+
ns\U id:“18787\,\n”+
“ns\U名称:\“其他电话\”\n”+
},\n+
“{\n”+
子单元id:“372\,\n”+
子单元名称:“移动操作”,\n+
ns\U id:“3650\,\n”+
“ns\U名称:\“Sim卡\”\n”+
“}\n”+
“]\n”+
" }";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
试一试{
JSONObject JSONObject=新的JSONObject(数据);
JSONObject categoryObject=JSONObject.getJSONObject(“类别”);
JSONArray JSONArray=categoryObject.getJSONArray(“cate”);
for(int i=0;i
在您的情况下,请尝试
String subName = "Phones";
JSONObject json = new JSONObject(jsonString);
JSONArray jsonArray = json.getJSONArray("cate");
JSONArray groupJsonWithSubName = new JSONArray();
for(int i=0; i < jsonArray.length(); i++){
JSONObject jsonData = jsonArray.getJSONObject(i);
if(jsonData.getString("sub_name").equals(subName){
groupJsonWithSubName.put(jsonData);
}
}
// in here groupJsonWithSubName will contains all json object which have sub_name="Phones"
String subName=“电话”;
JSONObject json=新的JSONObject(jsonString);
JSONArray JSONArray=json.getJSONArray(“cate”);
JSONArray组JSONWithSubName=新JSONArray();
for(int i=0;i
我不明白你的问题。请解释更多你在解析你的json吗?你一直在尝试什么?
String subName = "Phones";
JSONObject json = new JSONObject(jsonString);
JSONArray jsonArray = json.getJSONArray("cate");
JSONArray groupJsonWithSubName = new JSONArray();
for(int i=0; i < jsonArray.length(); i++){
JSONObject jsonData = jsonArray.getJSONObject(i);
if(jsonData.getString("sub_name").equals(subName){
groupJsonWithSubName.put(jsonData);
}
}
// in here groupJsonWithSubName will contains all json object which have sub_name="Phones"