【问题标题】:getting specific string value from an array从数组中获取特定的字符串值
【发布时间】:2018-02-25 03:53:04
【问题描述】:
String user=database.getUserDetails();
String user_id=user.get("id");
String delivered;

在这种情况下,传递的字符串是一些未解析的 json,例如

[{" delivered ":" 1"}, {"delivered ":" 11"},{"delivered ":" 19"}]

现在我想做一个类似的检查

if(delivered.toLowerCase().contains(user_id)

问题是在这种情况下,它将返回 11 和 19,因为它包含 1,因此我希望能够检查交付时是否在双引号中包含“user_id”,以确保仅出现该确切数字回来。有人请指出我正确的方向谢谢

【问题讨论】:

  • 如果您要比较的值确实被视为整数,您可以将它们解析为整数并改为比较整数。请参阅 Integer.parseInt 和 String.trim。
  • 它们是整数,但包裹在其他字符之间,单独提取整数是一个问题
  • 这是解析 JSON 对象的错误方式。您应该使用一些库来让您从 JSON 对象中获取元素。不要把它当作一个简单的字符串来处理。
  • 问题是这个数组是我已经解析过的更大 JSON 对象的一个​​对象,所以我不知道如何从 php 代码到 java 部分接收和解析另一个对象,所以我只是想我会得到一个字符串然后检查所需的整数,但是到目前为止它还没有解决

标签: java android json string


【解决方案1】:

试试这个...

    for(int i=0;i<delivered.length();i++) // iterate through all objects in Given Json String
    {
       JsonObject obj=delivered.getJsonObject(i);
       String id=obj.getString("delivered")
       if(id.toLowerCase().equals(user_id)
        {
          // yes it contains ,
        }
    }

【讨论】:

  • delivered 指的是整个字符串,因此不起作用 [{" Delivered ":" 1"}, {"delivered ":" 11"},{"delivered ":" 19"} ]
  • @Vine 立即查看
猜你喜欢
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多