一、對象轉成數組
對象轉成數組是最常見的一種數據類型轉換,在JavaScript中可以使用Object.entries()或Object.values()方法將對象轉成數組。
const obj = { a: '1', b: '2', c: '3' }; const arr1 = Object.entries(obj); // 輸出結果:[ ["a", "1"], ["b", "2"], ["c", "3"] ] const arr2 = Object.values(obj); // 輸出結果:[ "1", "2", "3" ]
可以看到,Object.entries()方法將對象的鍵值對轉成了數組的元素,而Object.values()方法直接將對象的屬性值轉成了數組的元素。這兩種方法都只會轉換對象自身可枚舉屬性,不包括繼承屬性和Symbol類型的屬性。
二、對象轉成數組js
在JavaScript的語法規範中,對象和數組都是一種基本數據類型,因此可以直接將對象轉換為數組。
代碼如下:
const obj = { a: '1', b: '2', c: '3' }; const arr = [obj];
上面的代碼將obj對象轉換為包含一個元素的數組,可用於Ajax的POST請求以及參數的傳遞等場景。
三、對象轉成list
在Java的開發中經常用到的一種數據結構是List,我們可以通過將對象轉成List來使用List中提供的操作方法。Java中有很多實現List接口的類,如ArrayList、LinkedList等,這裡我們以ArrayList為例來演示:
import java.util.ArrayList; import java.util.List; import java.util.Map; public class ObjectToListTest { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("a", "1"); map.put("b", "2"); map.put("c", "3"); List<String> list = new ArrayList<>(map.values()); for (String value : list) { System.out.println(value); } } }
上述代碼中,我們首先創建了一個Map對象,並向其中添加了三組鍵值對。接着,我們使用map.values()方法提取Map對象的屬性值,並將其存放到一個ArrayList對象中。最後,我們使用for-each循環遍歷ArrayList並輸出其中的元素。
四、對象轉成json
將對象轉換為JSON字符串是一種非常常見的數據類型轉換操作。在JavaScript中可以使用JSON.stringify()方法將對象轉換為JSON字符串。
const obj = { a: '1', b: '2', c: '3' }; const json = JSON.stringify(obj); // 輸出結果:{"a":"1","b":"2","c":"3"}
需要注意的是,因為JSON字符串的格式要求很嚴格,所以在對象的屬性名和屬性值中不要包含任何非法字符。
五、對象轉成數組的方法
除了前面提到的Object.entries()和Object.values()方法外,還有一些其他的方法可以將對象轉換為數組。
① 使用數組的結構賦值方法:
const obj = { a: '1', b: '2', c: '3' }; const arr = [...Object.entries(obj)]; // 輸出結果:[ ["a", "1"], ["b", "2"], ["c", "3"] ]
② 使用Array.from()方法:
const obj = { a: '1', b: '2', c: '3' }; const arr = Array.from(Object.entries(obj)); // 輸出結果:[ ["a", "1"], ["b", "2"], ["c", "3"] ]
③ 使用Object.keys()方法配合map()方法:
const obj = { a: '1', b: '2', c: '3' }; const arr = Object.keys(obj).map(key => [key, obj[key]]); // 輸出結果:[ ["a", "1"], ["b", "2"], ["c", "3"] ]
六、對象轉成字符串
除了將對象轉換為JSON格式的字符串以外,我們還可以通過一些簡單的方法將對象轉換為字符串。
① 使用模板字符串或字符串拼接方法:
const obj = { a: '1', b: '2', c: '3' }; const str1 = `a=${obj.a}, b=${obj.b}, c=${obj.c}`; // 輸出結果:a=1, b=2, c=3 const str2 = "a=" + obj.a + ", b=" + obj.b + ", c=" + obj.c; // 輸出結果:a=1, b=2, c=3
② 使用字符串的replace()方法:
const obj = { a: '1', b: '2', c: '3' }; const str = JSON.stringify(obj).replace(/[{\}"']/g, "")
上述代碼使用了replace()方法,並使用正則表達式將生成的JSON字符串中包含的字符'{”}”””和單引號去掉,得到了我們所需的鍵值對字符串。
七、對象轉成JSON字符串
在Java開發中,我們經常需要將Java對象轉換為JSON字符串,這時候我們可以使用第三方的JSON處理工具,如FastJson、Gson等,這裡我們以FastJson為例。
import com.alibaba.fastjson.JSONObject; public class ObjectToJsonTest { public static void main(String[] args) { User user = new User("John", "Doe", 28); JSONObject jsonObject = new JSONObject(); jsonObject.put("name", user.getName()); jsonObject.put("lastName", user.getLastName()); jsonObject.put("age", user.getAge()); String jsonStr = jsonObject.toJSONString(); System.out.println(jsonStr); } } class User { private String name; private String lastName; private int age; public User(String name, String lastName, int age) { this.name = name; this.lastName = lastName; this.age = age; } public String getName() { return name; } public String getLastName() { return lastName; } public int getAge() { return age; } }
上述代碼中,我們首先獲取了一個User對象,並以該對象為數據源生成了一個JSONObject對象。接着,我們使用toJSONString()方法將JSONObject對象轉換為JSON字符串。
八、對象轉成JSONObject
在Java開發中,我們也可以直接將Java對象轉換為JSON對象。使用FastJson的JSON.parseObject()方法即可實現。
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public class ObjectToJSONObjectTest { public static void main(String[] args) { String jsonStr = "{\"name\":\"John\",\"lastName\":\"Doe\",\"age\":28}"; JSONObject jsonObject = JSON.parseObject(jsonStr); System.out.println(jsonObject.get("name")); System.out.println(jsonObject.get("lastName")); System.out.println(jsonObject.get("age")); } }
上述代碼中,我們首先將一個JSON格式的字符串jsonStr轉換為了JSONObject對象,並輸出了其中的鍵值信息。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/186512.html