如何使用fastjson的JsonObject.getString()

jsonObject.getString(String key) 方法用于从 JSONObject 中获取与指定键关联的值,并将其作为字符串返回。如果该键不存在或对应的值不是字符串,可能会抛出异常。

示例:使用 getString

假设有一个 JSONObject 对象如下:

import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        // 创建一个 JSONObject
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", "Dave");
        jsonObject.put("age", 35);
        jsonObject.put("isStudent", false);
        
        // 获取字符串值
        String name = jsonObject.getString("name");
        System.out.println("Name: " + name);
        
        String age = jsonObject.getString("age"); // 这里返回的将是 "35" 的字符串形式
        System.out.println("Age as String: " + age);
    }
}

如何获取不知道类型的值?

如果你不确定某个键的值是什么类型,fastjson 提供了一些其他方法来获取值,你可以使用如下方法:

  1. get(Object key):这个方法可以获取任意类型的值。返回值是 Object 类型,你可以根据需要进行类型判断和转换。
  2. 类型判断:在获取值后,可以使用 instanceof 关键字检查具体类型。

示例:使用 get 方法

以下是一个示例,展示如何使用 get(Object key) 获取值,并进行类型判断:

import com.alibaba.fastjson.JSONObject;

public class Main {
    public static void main(String[] args) {
        // 创建一个 JSONObject
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("name", "Eva");
        jsonObject.put("age", 30);
        jsonObject.put("height", 1.65);
        jsonObject.put("isStudent", true);
        
        // 假设我们不知道 "height" 的类型
        Object height = jsonObject.get("height");

        // 类型判断
        if (height instanceof Number) {
            System.out.println("Height as Number: " + height);
        } else if (height instanceof String) {
            System.out.println("Height as String: " + height);
        } else {
            System.out.println("Height is of unknown type: " + height.getClass().getName());
        }
    }
}

在这个例子中,我们使用 get() 方法获取 height 的值,然后使用 instanceof 来检查其类型,从而知道如何处理它。

总结

  • getString(String key) 用于获取字符串类型的值。
  • 若不确定值的类型,使用 get(Object key) 方法,并结合类型判断进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值