0

嗨,我正在制作货币转换器

我已经完成了这部分...我正在获取 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

4 回答 4

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)
于 2013-09-29T17:43:25.060 回答
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
}
于 2013-09-29T15:22:18.080 回答
0

我使用 Google Gson 库取得了巨大成功。它非常简单,也许重要的是使用了 Apache V2 许可证。 谷歌格森

于 2013-09-29T15:08:51.623 回答
0

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

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

这只是一个例子。显然,您将根据需要替换 i, tag_type 。

于 2013-09-29T15:21:15.910 回答