1

これが私のJSON文字列です

"[{"name":"3214657890RootSAPSSE","children":[{"name":"672BENIAMEEN .Sales Base Market SectionCustomer Representative"},{"name":"672BENIAMEEN .Sales Base Market SectionPeão"}]}]"

Javaでjsonオブジェクトに解析すると、nullになります。このフィールドは、java スクリプトから来ている HTML 隠しフィールドから来ています。

これが私のJavaコードです

String x = request.getParameter("JSONString");
System.out.println(x);
        JSONArray jsonObject = (JSONArray) JSONValue.parse(x);
        Gson gson = new Gson(); 
        java.lang.reflect.Type type = new TypeToken<List<EmployeeJSONObj>>(){}.getType();
        List<EmployeeJSONObj>l = gson.fromJson(jsonObject.toJSONString(), type);
        System.out.println(l.get(0).getName());

これが私のJavaクラスです

public  class EmployeeJSONObj {
    private String name;
    private List<EmployeeJSONObj> children = new LinkedList<>();
    EmployeeJSONObj()
    {

    }
    public String getName()
    {
        return name;
    }

    public String toString() {
        return "name: " + name + ", children = " + children;
    }

}
4

1 に答える 1

0

そのような文字列を二重解析しないでください。そうしても意味がありません。GSONxに直接渡します。

String x = request.getParameter("JSONString");
Gson gson = new Gson(); 
java.lang.reflect.Type type = new TypeToken<List<EmployeeJSONObj>>(){}.getType();
List<EmployeeJSONObj>l = gson.fromJson(x, type);
System.out.println(l.get(0).getName());
于 2013-09-20T18:21:13.943 に答える