AsyncHttp获取网络Json并解析小案例

###第一次写,就当笔记了,哈哈,希望能帮助到别人,那就更好了

###数据源来自 有道API

MainActivity 代码

布局很简单就不加了。


public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private EditText edit;
    private Button search;
    private TextView text;
    private String url;
    private String preresult;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edit=(EditText)findViewById(R.id.edit);
        search=(Button)findViewById(R.id.search);
        text=(TextView)findViewById(R.id.text);
        search.setOnClickListener(this);




    }

    private void print() throws JSONException {
        JSONArray jsonArray = new JSONArray("[" + preresult + "]");
        String message = null;
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            if (jsonObject != null) {
                String errorCode = jsonObject.getString("errorCode");
                if (errorCode.equals("20")) {
                    Toast.makeText(getApplicationContext(), "要翻译的文本过长",
                            Toast.LENGTH_SHORT);
                } else if (errorCode.equals("30 ")) {
                    Toast.makeText(getApplicationContext(), "无法进行有效的翻译",
                            Toast.LENGTH_SHORT);
                } else if (errorCode.equals("40")) {
                    Toast.makeText(getApplicationContext(), "不支持的语言类型",
                            Toast.LENGTH_SHORT);
                } else if (errorCode.equals("50")) {
                    Toast.makeText(getApplicationContext(), "无效的key",
                            Toast.LENGTH_SHORT);
                } else {
                    // 要翻译的内容
                    String query = jsonObject.getString("query");
                    message = query;
                    // 翻译内容
                    String translation = jsonObject
                            .getString("translation");
                    message += "\t" + translation;
                    // 有道词典-基本词典
                    if (jsonObject.has("basic")) {
                        JSONObject basic = jsonObject
                                .getJSONObject("basic");
                        if (basic.has("phonetic")) {
                            String phonetic = basic.getString("phonetic");
                            message += "\n\t" + phonetic;
                        }
                        if (basic.has("explains")) {
                            String explains = basic.getString("explains");
                            message += "\n\t" + explains;
                        }
                    }
                    // 有道词典-网络释义
                    if (jsonObject.has("web")) {
                        String web = jsonObject.getString("web");
                        JSONArray webString = new JSONArray("[" + web + "]");
                        message += "\n网络释义:";
                        JSONArray webArray = webString.getJSONArray(0);
                        int count = 0;
                        while (!webArray.isNull(count)) {

                            if (webArray.getJSONObject(count).has("key")) {
                                String key = webArray.getJSONObject(count)
                                        .getString("key");
                                message += "\n\t<" + (count + 1) + ">"
                                        + key;
                            }
                            if (webArray.getJSONObject(count).has("value")) {
                                String value = webArray
                                        .getJSONObject(count).getString(
                                                "value");
                                message += "\n\t   " + value;
                            }
                            count++;
                        }
                    }
                }
            }
        }
        text.setText(message);
    }

    private void asynchttpGet(String url) {
        AsyncHttpClient client = new AsyncHttpClient();
        String url0="http://fanyi.youdao.com/openapi.do?keyfrom=abcabc&key=1424388928&type=data&doctype=json&version=1.1&q=";
        String url2=url0+url;
        client.get(url2,new AsyncHttpResponseHandler()
        {
            @Override
            public void onSuccess(String s) {
                super.onSuccess(s);
                preresult = s;
                //text.setText(s);
                System.out.println(s);

                try {
                    print();
                }catch (JSONException e)
                {
                    System.out.println("++++++++++++++++++++++++++++++++++++++++++");
                }


                Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(Throwable throwable) {

                super.onFailure(throwable);
                Toast.makeText(MainActivity.this, "网络请求失败", Toast.LENGTH_SHORT).show();

            }
        });
    }

    @Override
    public void onClick(View v) {
        if(v.equals(search))
        {
            //Toast.makeText(MainActivity.this, "111111", Toast.LENGTH_SHORT).show();
            url=edit.getText().toString().trim();
            asynchttpGet(url);


        }
    }
}
 
 
 
 

猜你喜欢

转载自blog.csdn.net/qq_19006223/article/details/50254397
今日推荐