2017-08-08 319 views
0

我有一个数据集。它的形式是 { “name1”:123 “name2”:234 “name3”:345 。 。 。 }如何将JSON数据保存到集合中?

现在,我正在使用@RestController通过PostMan来读取它。我有一个类test.java。 我有一个功能,

public void testController(@RequestBody String request) 

我通过本地主机与@RequestMapping的帮助下运行此。我需要将上述数据集逐个保存在一个对象中。目标如下。

public class OperatorClass implements Comparable<OperatorClass>{ 
    private String name; 
    private ArrayList<String> id = new ArrayList<>(); 

    OperatorClass(String name, String id) 
    { 
     add_id(id); 
     add_name(name); 
    } 

我想以下面的方式保存这些数据,这种方法我想通了。

try { 
     JSONObject array = new JSONObject(request); 
     Iterator<String> stringIterator1 = array.keys(); 
     stringIterator1.next(); 
     ArrayList<String> arrayList = new ArrayList<>(); 
     OperatorClass oco = new OperatorClass(array.keys().,array.get(array.keys().toString()).toString()); 
     System.out.println(oco.get_Name()); 
     System.out.println(oco.get_Id()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

我知道这是错误的,因为array.keys()给出所有的name1,name2,name3数据。我想知道的是如何为此命名1。以及如何获得它的后面的ID,以插入到一个特定的对象。我试图将对象保存到一组操作符类中。

+0

对不起,我觉得我错过了这个问题的一部分。我试图将对象保存到Set集 needananswerg

+0

您可以编辑您的问题并添加缺少的内容 – amicoderozer

回答

0

好的。我已经得到了这个问题的答案。我们使用

String temp = stringIterator1.next(); 

,取而代之的

OperatorClass oco = new OperatorClass(array.keys().,array.get(array.keys().toString()).toString()); 

我们使用,

OperatorClass oco = new OperatorClass(temp, array.get(temp).toString); 

只要记住,使用字符串迭代器可能不会在数据集中的顺序,由于显示值哈希映射。