Android:比较json数据和String


Android:Compare json data with String

我使用json从php中获取字符串数据,我想将此数据与字符串进行比较,即使它们相等但返回false,例如

php

文件:

<?php
   echo "ok";
?>

java use 3 log

BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
    sb.append(line + "'n");
}
is.close();
page_output = sb.toString();
Log.i("page_output",  page_output);
Log.i("page_output",  String.valueOf(page_output=="ok"));
Log.i("page_output",  String.valueOf(page_output.equals("ok")));
日志

07-12 03:42:45.616: I/page_output(2007): ok
07-12 03:42:45.736: I/page_output(2007): false
07-12 03:42:45.736: I/page_output(2007): false

你可以看到page_output是ok的但是返回false

试试这个:

Log.i("page_output",  String.valueOf(page_output.trim().equals("ok")));

您将"'n"附加在从php响应中读取的每行的末尾。所以你实际上是在比较"ok'n""ok",这就是为什么比较返回false

trim()函数删除空白,包括新行'n

在这一行:

sb.append(line + "'n");

在StringBuilder中添加"'n"新行字符。当您调用toString时,该字符也将放在您的String中。

因此,page_output.equals("ok'n")将为真。

或者你可以从StringBuilder中删除''n'字符,因为我在你的代码中没有看到任何实际用途