2

json を jsonArray に初期化しようとしていますが、それを行うことに迷っています。

どこが間違っているのか、json 配列を初期化する方法

JSONArray template = 
            {
                  "header": "Colors",
                  "items": [
                      {"name": "red", "first": true, "url": "#Red"},
                      {"name": "green", "link": true, "url": "#Green"},
                      {"name": "blue", "link": true, "url": "#Blue"}
                  ],
                  "empty": false
                };
4

4 に答える 4

0

自己フォーマットの代わりに、次の方法でそれを行ってきましたが、うまくいきました。

  function fillPolicydetails()
    {
    var clsPolicyDetails={}
      clsPolicyDetails.name="Sangeeta"
      clsPolicyDetails.technology=".net"
    return clsPolicyDetails;
    }




     $.ajax({
                type: "POST",
                url: url,
                data:  "{'policydetail':" + JSON.stringify(fillPolicydetails())+"}",    //finally here's the magic:
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: false,
                success: function (Result) {
                    successFunction(Result);
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    failureFunction(jqXHR, textStatus, errorThrown);
                }
            });

上記のコードはjson形式を生成し、生の文字列ではなくオブジェクトとして送信します

何か問題があれば教えてください。

于 2013-03-21T06:52:35.103 に答える
0

以下は、を初期化する適切な方法ですJSONArray

public class TestJSON {

public static void main(String[] args) {
    JSONArray template = new JSONArray("[ {\"name\": \"red\", \"first\": true, \"url\": \"#Red\"}," +
            " {\"name\": \"green\", \"link\": true, \"url\": \"#Green\"}," +
            "{\"name\": \"blue\", \"link\": true, \"url\": \"#Blue\"} ]");

    System.out.println(template.toString());

    }
}

出力は次のとおりです。

[
    {
        "name": "red",
        "first": true,
        "url": "#Red"
    },
    {
        "link": true,
        "name": "green",
        "url": "#Green"
    },
    {
        "link": true,
        "name": "blue",
        "url": "#Blue"
    }
]

EDIT1:

次のコードを使用して、完全な JSON オブジェクトを作成できます。

    public static void main(String[] args) {
        JSONArray template = new JSONArray(
            "[ {\"name\": \"red\", \"first\": true, \"url\": \"#Red\"},"
                + " {\"name\": \"green\", \"link\": true, \"url\": \"#Green\"},"
                + "{\"name\": \"blue\", \"link\": true, \"url\": \"#Blue\"} ]");

        JSONObject object = new JSONObject();
        object.put("header", "Colors");
        object.put("empty", false);
        object.put("items", template);

        System.out.println(object.toString());
        }

出力は次のとおりです。

{
    "items": [
        {
            "name": "red",
            "first": true,
            "url": "#Red"
        },
        {
            "link": true,
            "name": "green",
            "url": "#Green"
        },
        {
            "link": true,
            "name": "blue",
            "url": "#Blue"
        }
    ],
    "empty": false,
    "header": "Colors"
}

EDIT2:

次のコードを使用すると、JSON データを含む文字列を使用せずに完全な JSON オブジェクトを生成できます。

 public static void main(String[] args) {
    JSONArray template = new JSONArray();

    JSONObject obj = new JSONObject();
    obj.put("name", "red");
    obj.put("first", true);
    obj.put("url", "#Red");
    template.put(obj);

    JSONObject obj1 = new JSONObject();
    obj1.put("name", "green");
    obj1.put("link", true);
    obj1.put("url", "#Green");
    template.put(obj1);

    JSONObject obj2 = new JSONObject();
    obj2.put("name", "blue");
    obj2.put("link", true);
    obj2.put("url", "#Blue");
    template.put(obj2);

    JSONObject object = new JSONObject();
    object.put("header", "Colors");
    object.put("empty", false);
    object.put("items", template);

    System.out.println(object.toString());
    }

以下は、このプログラムの出力です。

{
    "items": [
        {
            "name": "red",
            "first": true,
            "url": "#Red"
        },
        {
            "link": true,
            "name": "green",
            "url": "#Green"
        },
        {
            "link": true,
            "name": "blue",
            "url": "#Blue"
        }
    ],
    "empty": false,
    "header": "Colors"
}
于 2013-03-21T06:48:32.340 に答える