【问题标题】:how do i convert the JSON file that i got to digits so that i can manipulate them on android我如何将我得到的 JSON 文件转换为数字,以便我可以在 android 上操作它们
【发布时间】:2013-09-29 14:57:35
【问题描述】:

你好,我正在做货币转换器

我已经完成了这部分...我正在获取 JSON 文件,我可以在 LOGCAT 上看到它...现在我的问题是如何让 JSON 将其转换为字符串并将其解析为浮动/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);
                    }
                });

            }
        });



    }



}

我现在真的很迷茫,最后期限就在我家门口

【问题讨论】:

标签: java android xml json currency


【解决方案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)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        使用 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-07-25
          • 2011-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-26
          • 2021-12-31
          • 2018-07-27
          相关资源
          最近更新 更多