1

json出力を作成しましたが、これらのエラーが発生しました。アイデアはありますか?!

コード1:

public function getChatRoomData($uid, $name, $mess, $_roomID)
{
    mysql_query("INSERT INTO _roomData(uid, userName, messageText, roomID, postedAt) VALUES('$uid', '$name', '$mess', '$_roomID', NOW())");
    return mysql_query("SELECT * FROM _roomData WHERE roomID = '$_roomID';"); 

}

コード2:

if ($tag == 'roomEnter') {
            $userID = $_POST['_uniqeID'];
            $userName = $_POST['_name'];
            $userMessage = $_POST['_message'];
            $roomID = $_POST['_roomID'];
            $queryFunctions = $db->getChatRoomData($userID , $userName, $userMessage, $roomID);
            $rows = array();
                        while($result = mysql_fetch_assoc($queryFunctions)) 
                        {
                                $rows["uid"] = $result["uid"];
                                $rows["name"] = $result["userName"];
                                $rows["roomDetails"]["message"] = $result["messageText"];

                        }
                         echo json_encode($rows);
            }

Logcatエラー:

07-30 18:59:46.843: E/JSON(26633): <br />
07-30 18:59:46.843: E/JSON(26633): <b>Parse error</b>:  syntax error, unexpected '}' in <b>/home/merlinga/public_html/_mess/index.php</b> on line <b>106</b><br />
07-30 18:59:46.944: E/JSON Parser(26633): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
07-30 19:02:30.293: E/JSON(26633): <br />
07-30 19:02:30.293: E/JSON(26633): <b>Parse error</b>:  syntax error, unexpected '}' in <b>/home/merlinga/public_html/_mess/index.php</b> on line <b>106</b><br />
07-30 19:02:30.293: E/JSON Parser(26633): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
4

2 に答える 2

3

ここに別のエラーがあります。$rows['..'] = $results['xxx']ループのすべての反復で割り当てます。$ rows [] = xxxを使用し、反復ごとに新しい配列またはオブジェクトを行配列に追加する必要があります。

受け取った最初の構文エラーを修正してから、他のエラーには次のようなものを使用します。

        $rows = array();
        while($result = mysql_fetch_assoc($queryFunctions)) 
        {
             $row = array();
             $row['uid'] = $result['uid'];
             $row['name'] = $result['userName'];
             // or just $rows[] = $result; 
             // see below.

             $row["roomDetails"] = array();
             $row["roomDetails"]["message"] = $result["messageText"];
             $rows[] = $row;
         }
        echo json_encode($rows);

$rows[] = $results結果を新しい配列またはオブジェクトにマッピングする代わりに使用する理由と反対の理由:

長所:

  1. 新しい属性/列を追加するときに、このレイヤーを更新する必要はありません

短所

  1. 同上。公開したくない新しい属性/列がリークし、必要以上に大きなHTTP応答が発生したり、さらに悪いことにセキュリティ上のリスクが発生したりする可能性があります。

  2. このレイヤーを使用して、テーブルの列を、異なる名前と集約された属性を持つビューモデルにマップすることができます。

于 2012-07-30T14:51:40.433 に答える
1

PHPコードに構文エラーがあり、明らかにJSON出力ではないエラーメッセージが表示され、JSONとして処理しようとするとさらに多くのエラーが発生します。

PHPコード、特に106行目あたりを確認し、問題の原因を確認してください。

于 2012-07-30T14:42:55.863 に答える