我如何将我得到的JSON文件转换为数字,以便我可以在android上操作它们

时间:2013-09-29 14:57:35

标签: java android xml json currency

我正在制作货币转换器

我已经做了这个部分...我正在获取JSON文件,我可以在LOGCAT上看到它...现在我的问题是我如何获得JSON将其转换为字符串并将其解析为float / double让我操纵它们......

这是迄今为止的代码

import com.actionbarsherlock.app.SherlockActivity;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;


import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends SherlockActivity {

    private static final String API_URL = "my own api";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btnConvert = (Button)findViewById(R.id.buttonConvert);

        btnConvert.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                AsyncHttpClient client = new AsyncHttpClient();
                client.get(API_URL, new AsyncHttpResponseHandler() {

                    @Override
                    public void onFailure(Throwable arg0, String arg1) {
                        // TODO Auto-generated method stub
                        super.onFailure(arg0, arg1);
                    }

                    @Override
                    public void onFinish() {
                        // TODO Auto-generated method stub
                        super.onFinish();
                    }

                    @Override
                    public void onStart() {
                        // TODO Auto-generated method stub
                        super.onStart();
                    }

                    @Override
                    public void onSuccess(String response) {

                        Log.i("CC", response);
                    }
                });

            }
        });



    }



}

我现在真的迷失了,我的家门口有一个截止日期

4 个答案:

答案 0 :(得分:1)

json解析依赖于json字符串,如果你的字符串以[这意味着它是数组开头,如果它以此开头{表示它是对象。如果是数组那么就这样得到它

JSONArray ja=new JSONArray(string);

如果它是对象,那么就像

一样
JSONObject jo=new JSONObject(string)

现在接下来的事情是获取此数组或对象的内部值。如果你在数组中,那么通过索引值获取对象

JSONObject jo=ja.getJSONObject(index);

现在将有三种情况,它可能是数组,第二种情况,它将是对象,第三种值将是您想要的字符串。如果它是数组得到它

JSONArray ja1=ja.getJSONArray(arraynamefromyourjsonstring);

现在,如果它是对象,那么就像

那样
JSONObject jo1=ja.getJSONObject(objectnamefromyourjsonstring);

,最后一个是你想要的字符串

String str=jo1.getString(stringnamefromyourjsonstring)

答案 1 :(得分:0)

我使用Google Gson图书馆取得了巨大成功。这很简单,也许重要的是使用Apache V2许可证。 Google Gson

答案 2 :(得分:0)

首先,获取JSONObject,然后从中提取字符串,如下所示,并将其解析为所需的基本类型:

JSONObject c = json.getJSONObject(i);
String vtype = c.getString(TAG_VTYPE);
float f=Float.parseFloat(vtype);

这只是一个例子。显然你会根据你的需要替换i,tag_type。

答案 3 :(得分:0)

使用org.json库:

Integer i = null;
try {
     JSONObject o = new JSONObject(response);
     i = o.getInt("number_key");
} catch (JSONException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
}

if(i != null) {
     // We're good
}