You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JSONObject类获取数组值及device、status字段的值?

如何从给定的JSON中获取device或status字段的值?

先提个小问题:你给的JSON里有两个status键,这不符合JSON规范哦!不同的JSONObject解析库处理重复键的逻辑不一样,绝大多数会保留最后出现的那个键值对(也就是status":"ON"),建议你尽量避免写出这种无效的JSON结构。

回到取值的具体操作:

  • 获取device字段:直接用getString()方法即可,因为它的值是字符串类型:

    String body = "{\"device\":\"SE_S2\",\"status\":\"1\",\"time\":\"1524737618.66301\",\"status\":\"ON\"}";
    JSONObject root = new JSONObject(body);
    
    String deviceValue = root.getString("device");
    // 此时deviceValue的值就是"SE_S2"
    
  • 获取status字段:同样用getString(),但因为重复键的问题,拿到的大概率是最后那个值"ON":

    String statusValue = root.getString("status");
    // 多数情况下会得到"ON",但还是建议修正JSON结构,去掉重复的status键
    
  • 要是想更稳妥,避免因为键不存在抛出异常,可以用optString()方法,还能指定默认值:

    // 如果device键不存在,就返回"Unknown Device"作为默认值
    String safeDevice = root.optString("device", "Unknown Device");
    

内容的提问来源于stack exchange,提问作者Andrea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:44:18