Gson async结果就像if语句一样

时间:2017-04-19 08:30:46

标签: android gson

我的问题的答案可能就在那里,但我不确定我是否正确理解这个概念。

我有一个小的Json文件,只包含

{"meteo": "1"}

我可以用Gson成功阅读它并向我展示一个Toast。

但是如果像这样做一个基于它的“if语句”:

 if(meteoStatus == "1"){ // I know for sure it's 1
// Do something
} else {
// Do something else
}

尽管我之前做了一次祝酒,但它总是进入if语句的第二部分,这显示我1

以下是完整的代码部分:

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        String url = "http://www.boisdelacambre.be/ios/json/weather.php?key=53666d6c7b206a532d52403e414d2579";
        String result = getUrlContents(url);

        gsonInstance = new Gson();
        meteo = new Meteo();
        meteo = gsonInstance.fromJson(result, meteo.getClass());

        String meteoStatus = meteo.getMeteo();


        View rootView = inflater.inflate(R.layout.fragment_meteo, container, false);
        ImageWeather = (ImageView) rootView.findViewById(R.id.imageWeather);
        DonnesOuRemis = (TextView) rootView.findViewById(R.id.donnesOuRemis);

        Toast.makeText(getActivity(), meteoStatus, Toast.LENGTH_LONG).show();

        if(meteoStatus == "1"){
            // il fait beau
            Toast.makeText(getActivity(), "Pas remis !!", Toast.LENGTH_LONG).show();
            ImageWeather.setImageResource(R.drawable.soleil);
            DonnesOuRemis.setText("Donnés");
            DonnesOuRemis.setTextColor(Color.parseColor("#06f828"));

        } else {
            Toast.makeText(getActivity(), "Pourquoi remis ??", Toast.LENGTH_LONG).show();
            ImageWeather.setImageResource(R.drawable.pluie);
            DonnesOuRemis.setText("Remis");
            DonnesOuRemis.setTextColor(Color.parseColor("#f80b27"));
        }

任何帮助都将受到高度赞赏; - )

2 个答案:

答案 0 :(得分:0)

你拥有的字符串是JSONObject,所以首先要像我这样从json对象中取出

  String meteoStatus;
    try {
        JSONObject object = new JSONObject("{\"meteo\": \"1\"}");
        meteoStatus = object.getString("meteo");

        if(meteoStatus.equals("1")){

        }else {

        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

答案 1 :(得分:0)

==用于布尔,浮点和整数检查。对于字符串比较,你应该总是使用equals运算符。

例:         如果(meteoStatus.equals( “1”)){

    }else {

    }