如何在android中获取对象中字段的值

时间:2017-07-10 08:54:01

标签: java android

我是android的新手。我正在使用简单的android项目,我正在使用asynctask。 onPostExecute方法我将对象结果作为参数。

   {"success":1,"message":"Successfully registered the user","error_code":"200"}

当我将结果记录为字符串时,我得到的值

func changeToRoundLable(countLabel : UILabel){
    let size:CGFloat = 55.0
    countLabel.textColor = UIColor.white
    countLabel.textAlignment = .center
    countLabel.font = UIFont.systemFont(ofSize: 14.0)
    countLabel.bounds = CGRect(x : 0.0,y : 0.0,width : size, height :  size)
    countLabel.layer.cornerRadius = size / 2
    countLabel.layer.borderWidth = 3.0
    countLabel.layer.masksToBounds = true
    countLabel.layer.backgroundColor = UIColor.orange.cgColor
    countLabel.layer.borderColor = UIColor.orange.cgColor
    countLabel.translatesAutoresizingMaskIntoConstraints = false
}

但我想在消息中显示值,但我无法从对象result.can得到它。有人帮助我。我遇到了这个问题。

4 个答案:

答案 0 :(得分:1)

解析JSON然后显示它:

try {
    // Log.d(result.toString(), "resultvalue");
    if (result != null) {
        // ADDED CODE IS HERE:
        JSONObject json = new JSONObject(result.toString());
        String message = json.getString("message");
        Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(getApplicationContext(),
            "Unable to retrieve any data from server", Toast.LENGTH_LONG).show();
    }
} catch (JSONException e) {
    // YOU MAY WANT TO MAKE A TOAST HERE AS WELL
    e.printStackTrace();
}

要彻底,如果在解析消息时发生异常,您可能还想为用户做出某种错误干扰。

答案 1 :(得分:0)

您获得的响应是​​JSONObject。您应该使用该字符串创建一个JSONObject并获取所需的值。

JSONObject jsonObject = new JSONObject(result.toString());
jsonObject.getInt("success");
jsonObject.getString("message");
jsonObject.getInt("error_code");

PS:您不应该像这样使用Log.d。名称应该是第一个参数而不是第二个,值应该是第二个而不是第一个。

答案 2 :(得分:0)

您需要将结果解析为JsonObject

@Override
    protected void onPostExecute(Object result) {
        try {
            Log.d(result.toString(),"resultvalue");
            JSONObject jsonObject = new JSONObject(result.toString());
            if (jsonObject.getInt("success")==1) {
                Toast.makeText(getApplicationContext(),jsonObject.getString("message"), Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getApplicationContext(), "Unable to retrieve any data from server", Toast.LENGTH_LONG).show();
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

答案 3 :(得分:0)

最好总是使用通用的Exception处理程序,这样如果除了预期的异常之外还有任何其他异常,那么应用程序就不会突然停止,您可以向用户显示适当的用户友好消息,并根据您的应用程序要求在内部处理它(转储)在文件或数据库中用于在用户同意的情况下收集报告等。)

Log.d的第一个参数始终是TAG,可用于搜索logcat。我正在使用TAG,你可以使用任何适合你的东西,并且更容易搜索日志。

k.Cells(1, 4).Address()