直接上代码: 布局很简单,就是个Demo而已 activity_main.xml
<LinearLayout 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" android:orientation="vertical" tools:context=".MainActivity"> <Button android:id="@+id/bt1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="查询用户配置"/> <Button android:id="@+id/bt2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="修改或插入用户单项配置"/> <Button android:id="@+id/bt3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="查询用户特别关心"/> <Button android:id="@+id/bt4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="添加某人到特别关心"/> <Button android:id="@+id/bt5" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="把某人从特别关心中删除"/> <ScrollView android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:textSize="18sp" /> </ScrollView> </LinearLayout>MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private static final String TAG = "MainActivity"; TextView responseText; Button checkAll; Button changeAndInsert; Button checkSpecial; Button insertSpecial; Button deleteSpecial; private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); responseText=(TextView)findViewById(R.id.text); checkAll=(Button)findViewById(R.id.bt1); changeAndInsert=(Button)findViewById(R.id.bt2); checkSpecial=(Button)findViewById(R.id.bt3); insertSpecial=(Button)findViewById(R.id.bt4); deleteSpecial=(Button)findViewById(R.id.bt5); checkAll.setOnClickListener(this); changeAndInsert.setOnClickListener(this); checkSpecial.setOnClickListener(this); insertSpecial.setOnClickListener(this); deleteSpecial.setOnClickListener(this); } public static class RequestType{ //请求类型后缀 public static String CHECKALL="config/get";//查询用户配置 public static String CHANGEANDINSERT="config/insert";//修改或者插入用户单项配置 public static String CHECKSPECIAL="special/get";//查询用户特别关心 public static String INSERTSPECIAL="special/insert";//添加特别关心 public static String DELETESPECIAL="special/detele";//删除特别关心 } @Override public void onClick(View v) { if (v.getId()==R.id.bt1){//按下按钮 checkallRequest("http://www.xxxxxx.cn:8084/appdemo/"+RequestType.CHECKALL, new okhttp3.Callback() { @Override public void onFailure(okhttp3.Call call, IOException e) { showResponse("请求失败"); } @Override public void onResponse(okhttp3.Call call, Response response) throws IOException { String responseData=response.body().string(); showResponse(responseData); Gson gson=new Gson(); HttpBack data=gson.fromJson(responseData,HttpBack.class); Log.e(TAG, "data0=="+data.getData().getList().get(0).getConfigValue() );//messageBell Log.e(TAG, "data1=="+data.getData().getList().get(1).getConfigValue() );//messageReminding Log.e(TAG, "data2=="+data.getData().getList().get(2).getConfigValue() );//music Log.e(TAG, "data3=="+data.getData().getList().get(3).getConfigValue() );//navigation Log.e(TAG, "data4=="+data.getData().getList().get(4).getConfigValue() );//receiverMode Log.e(TAG, "data5=="+data.getData().getList().get(5).getConfigValue() );//voiceCode } }); } if (v.getId()==R.id.bt2){//按下按钮 changeAndInsertRequest("http://www.xxxxx.cn:8084/appdemo/"+RequestType.CHANGEANDINSERT, new okhttp3.Callback() { @Override public void onFailure(okhttp3.Call call, IOException e) { showResponse("请求失败"); } @Override public void onResponse(okhttp3.Call call, Response response) throws IOException { String responseData = response.body().string();//返回的原始Json数据 showResponse(responseData); JsonParser parser=new JsonParser();//Json解析 JsonObject jsonObject= (JsonObject)parser.parse(responseData); Log.e(TAG, "返回信息=== "+jsonObject.get("msg")); } }); } if (v.getId()==R.id.bt3){//按下按钮 checkSpecialRequest("http://www.xxxxxx.cn:8084/appdemo/"+RequestType.CHECKSPECIAL, new okhttp3.Callback() { @Override public void onFailure(okhttp3.Call call, IOException e) { showResponse("请求失败"); } @Override public void onResponse(okhttp3.Call call, Response response) throws IOException { String responseData = response.body().string();//返回的原始Json数据 showResponse(responseData); Gson gson=new Gson(); CheckSpecial data=gson.fromJson(responseData,CheckSpecial.class); if (data.getData().getList().size()>0 && data.getData().getList()!=null) { for (int i = 0; i < data.getData().getList().size(); i++) { Log.e(TAG, "返回信息=== " + data.getData().getList().get(i).getSpecialPrimarykey().getOtherPhone());//如果列表不为空 } }else { Log.e(TAG, " 没有特别关心的人"); Log.e(TAG, "List==="+data.getData().getList().size() ); } } }); } if (v.getId()==R.id.bt4){//按下按钮 insertSpecialRequest("http://www.xxxxxx.cn:8084/appdemo/"+RequestType.INSERTSPECIAL, new okhttp3.Callback() { @Override public void onFailure(okhttp3.Call call, IOException e) { showResponse("请求失败"); } @Override public void onResponse(okhttp3.Call call, Response response) throws IOException { String responseData = response.body().string();//返回的原始Json数据 showResponse(responseData); JsonParser parser=new JsonParser();//Json解析 JsonObject jsonObject= (JsonObject)parser.parse(responseData); Log.e(TAG, "返回信息=== "+jsonObject.get("msg")); } }); } if (v.getId()==R.id.bt5){//按下按钮 deleteSpecialRequest("http://www.xxxxxx.cn:8084/appdemo/"+RequestType.DELETESPECIAL, new okhttp3.Callback() { @Override public void onFailure(okhttp3.Call call, IOException e) { showResponse("请求失败"); } @Override public void onResponse(okhttp3.Call call, Response response) throws IOException { String responseData = response.body().string();//返回的原始Json数据 showResponse(responseData); JsonParser parser=new JsonParser();//Json解析 JsonObject jsonObject= (JsonObject)parser.parse(responseData); Log.e(TAG, "返回信息=== "+jsonObject.get("msg")); } }); } } private void checkallRequest(String address,okhttp3.Callback callback){ OkHttpClient client=new OkHttpClient(); JsonObject obj=new JsonObject(); JsonObject object=new JsonObject(); obj.addProperty("phone","13411982971");//查询所有配置 object.add("userConfigPrimarykey",obj); String jsonStr=object.toString(); Log.e(TAG, "jsonStr== "+jsonStr); RequestBody requestBody=RequestBody.create(JSON,jsonStr); Request request=new Request.Builder() .url(address) .post(requestBody) .build(); client.newCall(request).enqueue(callback); } private void changeAndInsertRequest(String address,okhttp3.Callback callback){ OkHttpClient client=new OkHttpClient(); JsonObject obj=new JsonObject(); JsonObject object=new JsonObject(); obj.addProperty("phone","13411982971"); obj.addProperty("configName","messageReminding"); object.add("userConfigPrimarykey",obj); object.addProperty("configValue","open"); String jsonStr=object.toString(); Log.e(TAG, "jsonStr== "+jsonStr); RequestBody requestBody=RequestBody.create(JSON,jsonStr); Request request=new Request.Builder() .url(address) .post(requestBody) .build(); client.newCall(request).enqueue(callback); } private void checkSpecialRequest(String address,okhttp3.Callback callback){ OkHttpClient client=new OkHttpClient(); JsonObject obj=new JsonObject(); JsonObject object=new JsonObject(); obj.addProperty("phone","13411982971");//查询特别关心 object.add("specialPrimarykey",obj); String jsonStr=object.toString(); Log.e(TAG, "jsonStr== "+jsonStr); RequestBody requestBody=RequestBody.create(JSON,jsonStr); Request request=new Request.Builder() .url(address) .post(requestBody) .build(); client.newCall(request).enqueue(callback); } private void insertSpecialRequest(String address,okhttp3.Callback callback){ OkHttpClient client=new OkHttpClient(); JsonObject obj=new JsonObject(); JsonObject object=new JsonObject(); obj.addProperty("phone","13411982971");//增添特别关心 obj.addProperty("otherPhone","14716006328"); object.add("specialPrimarykey",obj); String jsonStr=object.toString(); Log.e(TAG, "jsonStr== "+jsonStr); RequestBody requestBody=RequestBody.create(JSON,jsonStr); Request request=new Request.Builder() .url(address) .post(requestBody) .build(); client.newCall(request).enqueue(callback); } private void deleteSpecialRequest(String address,okhttp3.Callback callback){ OkHttpClient client=new OkHttpClient(); JsonObject obj=new JsonObject(); JsonObject object=new JsonObject(); obj.addProperty("phone","13411982971");//删除特别关心...跟添加特别关心一样的json数据 obj.addProperty("otherPhone","14716006328"); object.add("specialPrimarykey",obj); String jsonStr=object.toString(); Log.e(TAG, "jsonStr== "+jsonStr); RequestBody requestBody=RequestBody.create(JSON,jsonStr); Request request=new Request.Builder() .url(address) .post(requestBody) .build(); client.newCall(request).enqueue(callback); } /* **UI显示结果部分 */ private void showResponse(final String response){ runOnUiThread(new Runnable() { @Override public void run() { responseText.setText(response); } }); } }其中上面的用gson来进行json解析的部分其实不用那么麻烦,我们可以不用知道哪个数据在list中具体编号i是多少,闭着眼睛都可以解析出我们要的值: 设编号为i;
for(int i=0;i<data.getData().getList().size();i++){ if (data.getData().getList().get(i).getUserConfigPrimarykey().getConfigName().equals("messageReminding")){ myInfoBean.setMessage_reminding(data.getData().getList().get(i).getConfigValue()); } if (data.getData().getList().get(i).getUserConfigPrimarykey().getConfigName().equals("messageBell")){ myInfoBean.setMessage_bell(data.getData().getList().get(i).getConfigValue()); } if (data.getData().getList().get(i).getUserConfigPrimarykey().getConfigName().equals("navigation")){ myInfoBean.setNavigation(data.getData().getList().get(i).getConfigValue()); } if (data.getData().getList().get(i).getUserConfigPrimarykey().getConfigName().equals("music")){ myInfoBean.setMusic(data.getData().getList().get(i).getConfigValue()); } }看到if条件框了吗,就是判断list中哪个含有我们要的数据对应的键(参数名,ConfigName),如果找到了就把对应的参数值(ConfigValue)取出来