0

私は 2 つの appengine アプリケーションを持っており、一方から JSONObject の文字列表現を提供し、他方でそれを取得しています。JSON に Text オブジェクトを含めない場合、すべてがうまく機能します

問題を引き起こしている JSON オブジェクトの特定の部分は次のとおりです。

,\"text\":\u003cText: rthBlog 1\r\n\"歴史から学ばなければ、同じことを繰り返す運命にある...\u003e,

文字列形式では次のようになります。

< テキスト: rthBlog 1 "歴史から学ばなければ、同じことを繰り返す運命にある...>

文字列をデータストアに配置する関連コードは次のとおりです[私はjson.simpleを使用しています]:

Text item_text = new Text("デフォルトのテキスト"); // 500 文字より長いテキストで埋められる JSONObject j = new JSONObject(); j.put("テキスト", item_text); j.put("item_links", j_links); item.setProperty("as_json", j.toJSONString()); datastore.put(アイテム);

JSONObject の配列を JSONArray にラップして取得し、文字列を生成するコードを次に示します [私は appengine json を使用しています]:

JSONArray search_results = new JSONArray();

    for(Entity e: items)
    {
        String j = (String) e.getProperty("as_json");
        JSONObject jo;

        if(j != null)
        {
            System.out.println(TAG + ".searchItems() string as json: " + j);

            jo = new JSONObject();
            jo.put("item", j);
            search_results.add(jo);
        }
    }

    JSONObject jo = new JSONObject();
    jo.put("items", search_results);

    return jo.toJSONString();

これがそれを拾うコードです[私はappengine jsonを使用しています]:

{ JSONObject jsonObject = 新しい JSONObject(s); を試してください。JSONArray jsonArray = (JSONArray) jsonObject.get("アイテム");

        JSONObject array_member = null;

        JSONObject j;

        for(int i=0; i<jsonArray.length(); i++)
        {
            array_member = jsonArray.getJSONObject(i);

            System.out.println("array member" + array_member);


            /*Text text = (Text)array_member.get("text"); // 
            System.out.println(text.getValue());*/

            String s_item = array_member.getString("item");

            System.out.println("item in string form: " + s_item);


            j = new JSONObject(s_item); //This is the exception causing line
4

1 に答える 1