如何从json String获取值 [英] How to get values from json String

查看:152
本文介绍了如何从json String获取值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个json字符串字符串,我想从中获取值。它是密钥对形式,所以我想要每个密钥的值。

I have a json string string from which I want to get the values. It is in key pair form so I want the values for each key.

我试图获取值,但我没有得到它。

I tried to get the values but I am not getting it.

Json String就像:

Json String is like :

{
    "document": {
        "xmlns:xsi": "http:\/\/www.w3.org\/2001\/XMLSchema-instance",
        "xsi:schemaLocation": "http:\/\/ocrsdk.com\/schema\/recognizeard-1.0.xsd http:\/\/ocrsdk.com\/schema\/recognized-1.0.xsd",
        "xmlns": "http:\/\/ocrsdk.com\/schema\/recognize-1.0.xsd",
        "businessCard": {
            "imageRotation": "noRotation",
            "field":

                [{
                "type": "Name",
                "value": "Rafcev B. Agnrwal"
            }, {
                "type": "Company",
                "value": "VJ>"
            }, {
                "type": "Text",
                "value": "Dr. Rafcev B. Agnrwal\nMOB 0324%\nun\n) AOM*. founts. sso\nVJ>\nT"
            }]
        }
    }
}

我想得到姓名,地址,公司等的值。

I want to get values of "Name", "Address", "Company" etc.

我试图得到这样的:

JSONArray array;
if(mIntent.getStringExtra("jsonString") != null) {
            Log.d("json", mIntent.getStringExtra("jsonString"));

        try {
            JSONObject object = new JSONObject(mIntent.getStringExtra("jsonString"));

            array = object.getJSONArray("field");

            for (int i = 0; i < array.length(); i++) {
                JSONObject subObject1 = array.getJSONObject(i);

                edt_FirstName.setText(object.getString("Name"));
            }

        } catch (JSONException e) {

}

有人可以帮帮我吗?谢谢..

Can anyone help me out please? Thank you..

编辑:

我试图检查这样的值:

                for (int i = 0; i < array.length(); i++) {
                    JSONObject subObject1 = array.getJSONObject(0);

                    String type = subObject1.getString("type");
                    String value = subObject1.getString("value");
                    if (type.equals("Name")) {
                        edt_FirstName.setText(value);
                    }
                    if(type.equals("Address"))
                    {
                        edt_address.setText(value);
                    }
                    if(type.equals("Company"))
                    {
                        edt_company.setText(value);
                    }
                    if(type.equals("Mobile"))
                    {
                        edt_Mobile.setText(value);
                    }


                }

我想要从字段数组中获取所有值并设置为文本视图,但我只获取Name值而不是其他值。

I want to get all the values from field array and set to the text view, but I am getting only the Name value and not the others.

此外,我可以获得一个字段为两次像Mobile我可以得到两次,所以我想结合两个Mobile值并显示它。

Also I could get one field as twice like Mobile I can get twice, so I want to combine both the Mobile values and show it.

推荐答案

所以你的json对象是如下:

So your json object is as follow:

{
    "document": {
        "xmlns:xsi": "http:\/\/www.w3.org\/2001\/XMLSchema-instance",
        "xsi:schemaLocation": "http:\/\/ocrsdk.com\/schema\/recognizeard-1.0.xsd http:\/\/ocrsdk.com\/schema\/recognized-1.0.xsd",
        "xmlns": "http:\/\/ocrsdk.com\/schema\/recognize-1.0.xsd",
        "businessCard": {
            "imageRotation": "noRotation",
            "field":

                [{
                "type": "Name",
                "value": "Rafcev B. Agnrwal"
            }, {
                "type": "Company",
                "value": "VJ>"
            }, {
                "type": "Text",
                "value": "Dr. Rafcev B. Agnrwal\nMOB 0324%\nun\n) AOM*. founts. sso\nVJ>\nT"
            }]
        }
    }
}

首先需要将document作为 JSONObject ,然后将businessCard作为 JSONObject 然后你可以得到字段为 JSONArray

You first need to get "document" as JSONObject and then get "businessCard" as JSONObject and then you can get "field" as JSONArray:

if(mIntent.getStringExtra("jsonString") != null) {
    Log.d("json", mIntent.getStringExtra("jsonString"));

    try {
        JSONObject object = new JSONObject(mIntent.getStringExtra("jsonString"));

        JSONArray array = object.getJSONObject("document").getJSONObject("businessCard").getJSONArray("field");

        for (int i = 0; i < array.length(); i++) {
            JSONObject subObject = array.getJSONObject(i);

            String type = subObject.getString("type");
            String value = subObject.getString("value");
            if (type.equals("Name")) {
                    String prevValue = edt_FirstName.getText();
                    edt_FirstName.setText((TextUtils.isEmpty(prevValue) ? "" : prevValue + ",") + value);
            }
        }

    } catch (JSONException e) { }
}

这篇关于如何从json String获取值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆