解析特定的JSON数据格式

时间:2014-04-24 06:02:58

标签: java android json

我有这个小问题,我正在制作一个Android应用程序n使用.php文件来调用java脚本文件,它返回一个JSON输出..现在我的问题是输出是有效的JSON格式,现在我是对于如何解析值感到困惑。 输出是

  

[ “15.493511”, “73.818659”]

其中第一个值是纬度值,第二个值是经度值。 我想要做的是解析这是在asynctask中获取此值我想分割这些值并将它们分配给变量。任何想法我怎么能做到这一点。 提前谢谢。

5 个答案:

答案 0 :(得分:3)

这是一个json数组

<?php

$val = '["15.493511","73.818659"]';
$arrVal = json_decode($val, true);

print_r($arrVal);

$latitude = $arrVal[0];
$longitude = $arrVal[1]

这将输出:

array(15.493511, 73.818659);

答案 1 :(得分:1)

正如您所说i want to do is parse this is on fetching this value in the asynctask意味着您需要解析Android应用程序中的json数据。

JSONArray jObject = new JSONArray(result); //result is the json data you received
String lat = jObject.getString(0);
String long = jObject.getString(1);

已更新 spring-breaker

建议的答案

答案 2 :(得分:0)

您正在获取JSON数组。 所以你的代码可以是这样的......

String latitude=jsonarray.getString(0);
String longitude=jsonarray.getString(1);

答案 3 :(得分:0)

尝试以下代码: -

            JSONArray j = new JSONArray("ur value");

            for (int i = 0; i < j.length(); i++)
            {
                System.out.println(j.get(i));
            }

答案 4 :(得分:0)

执行以下操作,

private class MyAsyncTask extends AsyncTask<String, String, String>
        {

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
            }
            @Override
            protected String doInBackground(String... params) {
                String data="["15.493511","73.818659"]"; // Assuming that it is your static data
                try {
                JSONArray myArray=new JSONArray(data);

                         String lattitude=myArray.getString(0);
                         String longitudetude=myArray.getString(1);

                          }
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                return null;
            }

            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);
                //update your UI or do your task;
                }

            }

        }

执行AsyncTask,如下所示,

new MyAsyncTask().execute();