0

get()データベースから列を選択するためにデータマッパーのメソッドを使用しています。このオブジェクトをに渡していますjson_encode();これを行うと、このエラーが発生します

json_encode()  type is unsupported, encoded as null

3つ更新

["{\"id\":1,\"name\":\"JOHN\",\"city\":\"null\"}"
,"{\"id\":2,\"name\":\"MICHEAL\,\"city\":\"null\"}"]

これが私の回答です。都市を選択していませんが、それでも都市が表示されます。jsonを正しい形式で取得する方法

SyntaxError: JSON.parse: JSON データの後に予期しない非空白文字があります

[Break On This Error]   

var jsonData = JSON.parse(data);
4

2 に答える 2

0

Datamapper オブジェクトを json オブジェクトにエンコードするには、拡張機能の関数が必要です。ここで拡張機能をインポートする方法を見つけることができます: http://datamapper.wanwizard.eu/pages/extensions.html これはそれを行う 1 つの方法です:

class Test extends DataMapper {

    // Include the json extension
    var $extensions = array('json');
.......

  $test= new Test();                
  $test->where('id', $this->input->post('id'));
  $test->select('id,name');
  $test->get();
  $test->set_json_content_type();
  echo $test->all_to_json();

「市区町村」の列があるのは正常です。DataMapper ユーザー ガイドから:

オブジェクトには、対応するテーブルのすべてのオブジェクトが取り込まれますが、タイトル フィールドと説明フィールドのみが取り込まれます。

JSON をデコードするには、このメソッドを使用する必要があります (まだインポートしていない場合は、拡張機能をインポートすることを忘れないでください)。

$n = new Test();
$n->from_json([put your JSON string here]);
于 2013-04-11T06:55:30.053 に答える
0

CIにDatamapperを使用したことはありませんが、次のことを行う必要があると確信しています:

$test= new Test();                
$test->select('id,tag_name');
$test->where('id', $this->input->post('id'));
$test->get();
json_encode($test);

注: ->get() の呼び出しは、$test 変数を使用して JSON エンコードする前に、最後の呼び出しにする必要があります。

于 2013-04-11T07:09:05.167 に答える