将JSON数据传递到Android JAVA字符串

将JSON数据传递到Android JAVA字符串,java,android,json,Java,Android,Json,我想在JavaAndroidStudio中将数据作为字符串变量从JSON加载。 我的JSON是: { "server_response": [ { "name": "1", "email": "istiyak.pro@gmail.com", "mobile": "990-100010000" }, { "name": "2",

我想在JavaAndroidStudio中将数据作为字符串变量从JSON加载。 我的JSON是:

{
    "server_response": [
        {
            "name": "1",
            "email": "istiyak.pro@gmail.com",
            "mobile": "990-100010000"
        }, 
        {
            "name": "2",
            "email": "Tanim Khan ",
            "mobile": "tanim@gmail.com "
        }, 
        {
            "name": "3",
            "email": "Rezaul Hasan ",
            "mobile": "rezaul@gmail.com "
        }
    ]
}
我的目标字符串列表如下所示:

 String email[] = {


            " Mirpur-13, Kafrul , Govt.Unani Medical College & Hospital, Dhaka",
            " Sher-E-Bangla Nagar , Shaheed Sohrawardi Medicel College Hospital, Dhaka",
            " Shahbag Square , Birdem General Hospital, Dhaka",
            " Shahbag circle , BSMMU, Dhaka",
            " Shaymoli bus stand , Dhaka Child Hospital, Dhaka",
            " Bokshi Bazar, 100 Ramna , Dhaka Medical College Hospital, Dhaka",
            " Nayabazar , Dhaka City General Hospital, Dhaka",
            " Sher-E-Bangla Nagar , National Heart Institute & Hospital, Dhaka",
            " Sher-E-Bangla Nagar, National Mental Health Institute & Hospital, Dhaka",
            " Shayamoli, Sher-E-Bangla Nagar , National Ophthalmological Institute & Hospital, Dhaka",
            " Mahakhali , National Cancer Research Institute & Hospital, Dhaka",
            " Sher-E-Bangla Nagar , National Kidney Institute & Hospital, Dhaka",
            " Sher-E-Bangla Nagar , National Orthopedics Hospital, Dhaka",
            " Mirpur , Kidney Foundation Bangladesh, Dhaka",
            " Mahakhali Kacha Bazar , ICDDRB, Dhaka"};



    String mobile[] = {

            "02-8012048",
            "02-9130800",
            "02-8616641",
            "02-9661051",
            "02-8116061",
            "02-8626812",
            "02-7390860",
            "02-9122560",
            "02-9118171",
            "02-9118336",
            "02-9880078",
            "02-91365560",
            "02-9144190",
            "02-8055827",
            "02-8806523",};

现在我想将JSON的所有“email”数据设置为product[]数组,并在name[]数组中设置“mobile”。请帮助我如何将数据传递到这些数组。

您可以使用
Gson
库将json反序列化为Map(或任何java bean),然后填充电子邮件和手机号码列表,例如:

Gson gson = new Gson();
Map<String, Object> data = gson.fromJson("{\"server_response\": [{    \"name\": \"1\",    \"email\": \"istiyak.pro@gmail.com\",    \"mobile\": \"990-100010000\"}, {    \"name\": \"2\",    \"email\": \"Tanim Khan \",    \"mobile\": \"tanim@gmail.com \"}, {    \"name\": \"3\",    \"email\": \"Rezaul Hasan \",    \"mobile\": \"rezaul@gmail.com \"}]}", Map.class);
List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("server_response");
List<String> emails = new ArrayList<>();
List<String> numbers = new ArrayList<>();
for(Map<String, Object> element : list){
    emails.add(element.get("email").toString().trim());
    numbers.add(element.get("mobile").toString().trim());
}
System.out.println(emails);
System.out.println(numbers);
Gson-Gson=new-Gson();
Map data=gson.fromJson(“{\”服务器\响应\“:[{\”名称\“:\”1\“,\”电子邮件\“:\”istiyak。pro@gmail.com\“,”手机“:\”990-100010000\”,“{\”姓名“:”2\,”电子邮件“:\”塔尼姆·汗“,”手机“:\”tanim@gmail.com\“},{\“姓名”:“3\”,“电子邮件”:“Rezaul Hasan\”,“手机”:“rezaul@gmail.com\“}]}”,Map.class);
List=(List)data.get(“服务器响应”);
列出电子邮件=新建ArrayList();
列表编号=新的ArrayList();
用于(映射元素:列表){
emails.add(element.get(“email”).toString().trim());
add(element.get(“mobile”).toString().trim());
}
System.out.println(电子邮件);
系统输出打印项次(数字);

您可以从[]获得
JSON Simple
。这是一个[]

一旦您下载了它并将jar添加到您的项目中,JSON解码机制将如下所示

String st = "{\"server_response\":[{\"name\":\"1\",\"email\":\"istiyak.pro@gmail.com\",\"mobile\":\"990-100010000\"},{\"name\":\"2\",\"email\":\"Tanim Khan \",\"mobile\":\"tanim@gmail.com \"},{\"name\":\"3\",\"email\":\"Rezaul Hasan \",\"mobile\":\"rezaul@gmail.com \"}]}";
JSONParser parser = new JSONParser();
try {
    Object o = parser.parse(st);
    JSONObject obj = (JSONObject) o;
    System.out.println(obj); // {"server_response":[{"name":"1","mobile":"990-100010000","email":"istiyak.pro@gmail.com"},{"name":"2","mobile":"tanim@gmail.com ","email":"Tanim Khan "},{"name":"3","mobile":"rezaul@gmail.com ","email":"Rezaul Hasan "}]}

    JSONArray arr = (JSONArray) obj.get("server_response");

    List<String> email = new ArrayList<String>();
    List<String> mobile = new ArrayList<String>();

    for (Object each: arr) {
        JSONObject a = (JSONObject) each;
        email.add(a.get("email").toString().trim());
        mobile.add(a.get("mobile").toString().trim());
    }

    System.out.println(email); // [istiyak.pro@gmail.com, Tanim Khan, Rezaul Hasan]
    System.out.println(mobile); // [990-100010000, tanim@gmail.com, rezaul@gmail.com]

} catch (org.json.simple.parser.ParseException e) {
    e.printStackTrace();
}
{
    "server_response": [
        {
            "name": "1",
            "email": "istiyak.pro@gmail.com",  <--- good
            "mobile": "990-100010000"          <--- good
        }, 
        {
            "name": "2",
            "email": "Tanim Khan ",            <--- not good
            "mobile": "tanim@gmail.com "       <--- not good
        }, 
        {
            "name": "3",
            "email": "Rezaul Hasan ",          <--- not good
            "mobile": "rezaul@gmail.com "      <--- not good
        }
    ]
}
我建议您首先修复JSON数据<代码>“Rezaul Hasan”实际上不是电子邮件ID,而且
“rezaul@gmail.com“
实际上不是一个手机号码


如果有任何问题,请告诉我!:)

在寻求帮助之前,请发布您为解决问题所做的尝试。String st=“”;JSONParser=新的JSONParser();如果我想从php url加载json,那么我在这里做什么?请帮助我:)@Istiyak我不完全清楚你的意思,或者这个php文件是如何工作的。我建议你写一个新问题来最好地解决你的问题。你的答案也是正确的。实际上,我为我的项目创建了一个自定义列表视图,在那里我使用字符串值作为项目列表值,现在我想在用php编码json时从web加载json,并想将json数据保存到该字符串值。在一方面,我只想使用JSON解析从web创建一个自定义列表视图系统。我可以使用-String st=”“解析JSON吗?这是justnope的一个例子。您必须首先从链接下载json。Map data=gson.fromJson();在这里,我想从一个php url加载json,那么在这种情况下我该怎么做??:)