我想将这种json格式绑定到tree数据库读出来的格式是:
id name pid pname
7 墨尔本 2 澳洲
8 纽约 3 美国怎么转为这种json格式[
  {id:'2',text:'澳洲',
     children:[
       {id:'6',text:'悉尼'},
       {id:'7',text:'墨尔本'}
     ]
  }
]

解决方案 »

  1.   


    package com.hudepin.json;import java.util.ArrayList;
    import java.util.List;public class JsonTest {    private static List<User> userList = new ArrayList<User>();    /**
         * @param args
         */
        public static void main(String[] args) {
    User u = new User();
    u.setId("2");
    u.setName("澳洲");
    u.setParentUser(u);
    User u1 = new User();
    u1.setId("6");
    u1.setName("悉尼");
    u1.setParentUser(u);
    User u2 = new User();
    u2.setId("6");
    u2.setName("墨尔本");
    u2.setParentUser(u);
    userList.add(u);
    userList.add(u1);
    userList.add(u2);
    StringBuffer json = new StringBuffer("");
    json.append("[");
    for (User user : userList) {
        List<User> childList = findChildren(user);
        json.append("{");
        json.append(generateCommon(user));
        if (childList.size() > 0) {
    json.append("children:");
    json.append("[");
    for (User childUser : childList) {
        json.append("{");
        json.append(generateCommon(childUser));
        json.append("},");
    }
    json = new StringBuffer(json.substring(0, json.length() - 1));
    json.append("]");
        }
        json.append("}");
    }
    json.substring(0, json.length() - 1);
    json.append("]");
    System.out.println(json);
        }    private static String generateCommon(User user) {
    StringBuffer json = new StringBuffer("");
    json.append(" id:'" + user.getId() + "'" + ",");
    json.append("text:'" + user.getName() + "'");
    return json.toString();
        }    private static List<User> findChildren(User user) {
    List<User> returnList = new ArrayList<User>();
    for (User u : userList) {
        if (u.getId().equals(user.getId())) {
    returnList.add(u);
        }
    }
    return returnList;
        }
    }