2017-08-08 322 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); 

只要記住,使用字符串迭代器可能不會在數據集中的順序,由於顯示值哈希映射。