как получить этот вывод в java - PullRequest
0 голосов
/ 17 января 2020

Код:

public  JSONArray tree_data()  {


     JSONArray result = new JSONArray();

        JSONArray nodes = new JSONArray();

    try {
        String query= "select parent_names.name as parent_name, child_names.name as child_name, parent_child.title from parent_child INNER join parent_names on parent_names.id=parent_child.parent_id\r\n" + 
                "                   INNER join child_names on child_names.id=parent_child.child_id order by parent_names.name;";
        Statement td = this.con.createStatement();
        ResultSet rst=td.executeQuery(query);
        String parent="";
        int i=0; 

        while(rst.next())
        {
             JSONObject childs = new JSONObject();
             JSONObject obj1 = new JSONObject();
            String nowparent=rst.getString("parent_name");
            if(parent.equals(nowparent)) {

                childs.put("text",rst.getString("child_name"));
                childs.put("title", rst.getString("title"));
                nodes.put(childs);


            }else {

                parent=nowparent;
                obj1.put("text", parent);
                childs.put("text",rst.getString("child_name"));
                childs.put("title", rst.getString("title"));
                nodes.put(childs);


            }obj1.put("nodes", nodes);
            result.put(obj1);


        }

    }


    catch (Exception e) {
     System.out.print(e);
    }
    System.out.print(result);
    return result;




}

Я хочу это JSON Вывод

[
  {
    text: 'Order',
    nodes: [
      {
        text: 'countrywise',
        title: 'sss'
      },
      {
        text: 'factorywise',
        title: 'ffff'
      }
    ]
  },
  {
    text: 'sales',
    nodes: [
      {
        text: 'countrywise',
        title: 'sss'
      },
      {
        text: 'factorywise',
        title: 'ffff'
      },
      {
        text: 'Season',
        title: 'eeee'
      }
    ]
  }
];

Это база данных. parent_name child_name title Order, Seoson, sss, / / ​​
Order, Customer, ccc, // Slaes, Season, sssss, //

Slaes, Customer, ssssds, //

Slaes, country, sssdsds

используются другие способы, но я не могу решить это. Я думаю, что проблемы имеют oop, но не показывают, в чем проблема в этом oop. Пожалуйста, помогите решить этот вопрос. спасибо

1 Ответ

0 голосов
/ 17 января 2020

исправьте некоторые коды. сейчас работает

 JSONObject childs = new JSONObject();
             JSONObject obj1 = new JSONObject();
            String nowparent=rst.getString("parent_name");
            if(parent.equals(nowparent)) {

                childs.put("parent",rst.getString("child_name"));
                childs.put("title", rst.getString("title"));
                nodes.put(childs);


            }else {
                nodes=new JSONArray();
                obj1.put("nodes", nodes);
                parent=nowparent;
                obj1.put("parent", nowparent);
                childs.put("parent",rst.getString("child_name"));
                childs.put("title", rst.getString("title"));
                nodes.put(childs);
                result.put(obj1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...