คำถามติดแท็ก gson

Gson เป็นไลบรารีโอเพ่นซอร์สของ Google สำหรับการทำให้เป็นอนุกรมและการแยกส่วนของออบเจ็กต์ Java ไปยัง / จาก JSON

1
คุณสามารถหลีกเลี่ยง Gson แปลง“ <” และ“>” เป็นลำดับการหลีกเลี่ยง Unicode ได้หรือไม่
ฉันสังเกตเห็นว่าGsonแปลงสตริง "&lt;" เป็นลำดับการหลีกเลี่ยง Unicode ในเอาต์พุต JSON คุณสามารถหลีกเลี่ยงสิ่งนี้ได้หรือไม่หรืออักขระเช่น "&lt;" และ "&gt;" จะต้องมีค่า Escape ใน JSON ลองพิจารณาตัวอย่างที่พิมพ์{"s":"\u003c"}; {"s":"&lt;"}ฉันต้องการเพียงแค่ public static void main(String[] args) { Gson gson = new GsonBuilder().create(); System.out.println(gson.toJson(new Foo())); } static class Foo { String s = "&lt;"; } บริบท: ส่วนของ JSON ที่ฉันสร้างไม่มีส่วนเกี่ยวข้องกับหน้า HTML หรือแม้แต่ JavaScript ใช้เพื่อส่งข้อมูลที่มีโครงสร้างบางอย่างไปยังซอฟต์แวร์อื่น (ฝังอยู่ในอุปกรณ์เขียนด้วยภาษา C)
128 java  json  gson 

12
"คาดหวัง BEGIN_OBJECT แต่เป็น STRING ที่บรรทัด 1 คอลัมน์ 1"
ฉันมีวิธีนี้: public static Object parseStringToObject(String json) { String Object = json; Gson gson = new Gson(); Object objects = gson.fromJson(object, Object.class); parseConfigFromObjectToString(object); return objects; } และฉันต้องการแยกวิเคราะห์ JSON ด้วย: public static void addObject(String IP, Object addObject) { try { String json = sendPostRequest("http://" + IP + ":3000/config/add_Object", ConfigJSONParser.parseConfigFromObjectToString(addObject)); addObject = ConfigJSONParser.parseStringToObject(json); …
126 java  json  parsing  gson 

4
วิธีการแยกรายการโดยใช้ GSON หรือไลบรารี JSON อื่นใน Java
ฉันสามารถทำให้ไฟล์ List&lt;Video&gt;ใน servlet ของฉันบน GAE ได้ แต่ฉันไม่สามารถยกเลิกการกำหนดค่าเริ่มต้นได้ ผมทำอะไรผิดหรือเปล่า? นี่คือวิดีโอสำหรับชั้นเรียนของฉันใน GAE ซึ่งต่อเนื่องกัน: package legiontube; import java.util.Date; import javax.jdo.annotations.IdGeneratorStrategy; import javax.jdo.annotations.IdentityType; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Video { @PrimaryKey private String id; @Persistent private String titulo; @Persistent private String descricao; @Persistent private Date date; public Video(){}; …
121 java  json  gson 

7
ใช้ Enums ขณะแยกวิเคราะห์ JSON กับ GSON
คำถามนี้เกี่ยวข้องกับคำถามก่อนหน้านี้ที่ฉันถามก่อนหน้านี้ JSON แยกวิเคราะห์โดยใช้ Gson ฉันพยายามแยกวิเคราะห์ JSON เดียวกัน แต่ตอนนี้ฉันได้เปลี่ยนชั้นเรียนเล็กน้อยแล้ว { "lower": 20, "upper": 40, "delimiter": " ", "scope": ["${title}"] } ชั้นเรียนของฉันดูเหมือนว่า: public class TruncateElement { private int lower; private int upper; private String delimiter; private List&lt;AttributeScope&gt; scope; // getters and setters } public enum AttributeScope { TITLE("${title}"), DESCRIPTION("${description}"), private String scope; …
119 java  json  gson 

5
การแยกอาร์เรย์ JSON ลงใน java.util.List ด้วย Gson
ฉันมีJsonObjectชื่อที่"mapping"มีเนื้อหาดังต่อไปนี้: { "client": "127.0.0.1", "servers": [ "8.8.8.8", "8.8.4.4", "156.154.70.1", "156.154.71.1" ] } ฉันรู้ว่าฉันสามารถรับอาร์เรย์"servers"ด้วย: mapping.get("servers").getAsJsonArray() และตอนนี้ฉันต้องการแยกวิเคราะห์JsonArrayเป็นjava.util.List... วิธีที่ง่ายที่สุดในการทำคืออะไร?
119 java  json  parsing  gson 

4
แปลงชื่อคุณสมบัติสไตล์ JSON เป็นชื่อ Java CamelCase ด้วย GSON
ฉันใช้GSONเพื่อแปลงข้อมูล JSON ที่ได้รับไปยังออบเจ็กต์ Java มันใช้ได้ดีในการทดสอบทั้งหมดของฉัน ปัญหาคือวัตถุจริงของเรามีคุณสมบัติบางอย่างที่ชื่อ is_online GSON จะแมปเฉพาะเมื่อมีชื่อเท่ากันโดยสิ้นเชิงมันจะเป็นการดีที่จะให้ GSON แปลงชื่อเป็น Java camel case isOnline ดูเหมือนว่าจะเป็นไปได้ในขณะที่สร้างข้อมูล JSON กรณีอูฐจะถูกแปลงเป็นคำที่คั่นด้วยขีดล่างใน JSON แต่ฉันหาวิธีระบุสิ่งนี้ในแบบอื่นไม่ได้
112 java  json  gson  camelcasing 

12
รับวัตถุ JSON ที่ซ้อนกันด้วย GSON โดยใช้ชุดติดตั้งเพิ่มเติม
ฉันใช้ API จากแอป Android ของฉันและการตอบสนอง JSON ทั้งหมดเป็นดังนี้: { 'status': 'OK', 'reason': 'Everything was fine', 'content': { &lt; some data here &gt; } ปัญหาคือว่า POJOs ของฉันทุกคนมีstatus, reasonสาขาและภายในcontentสนามเป็นตัวจริง POJO ฉันต้องการ มีวิธีใดบ้างในการสร้างตัวแปลง Gson ที่กำหนดเองเพื่อแยกcontentฟิลด์เสมอดังนั้นการติดตั้งเพิ่มจะส่งคืน POJO ที่เหมาะสม
111 java  android  json  gson  retrofit 

3
จุดประสงค์พื้นฐานของคำอธิบายประกอบ @SerializedName ใน Android โดยใช้ Gson คืออะไร
วัตถุประสงค์พื้นฐานของ@SerializedNameคำอธิบายประกอบใน Android โดยใช้ Gson คืออะไร? ขอยกตัวอย่างที่แตกต่างกัน ฉันไม่เข้าใจจุดประสงค์หลักของการใช้งาน
111 java  android  json  gson 

7
วิธีใช้ TypeToken + generics กับ Gson ใน Kotlin
ฉันไม่สามารถรับรายการประเภททั่วไปจากคลาสที่กำหนดเองได้ (เทิร์น): val turnsType = TypeToken&lt;List&lt;Turns&gt;&gt;() {}.type val turns = Gson().fromJson(pref.turns, turnsType) มันกล่าวว่า: cannot access '&lt;init&gt;' it is 'public /*package*/' in 'TypeToken'

10
ใช้ JsonReader.setLenient (true) เพื่อยอมรับ JSON ที่ผิดรูปแบบที่บรรทัด 1 คอลัมน์ 1 เส้นทาง $
ข้อผิดพลาดนี้คืออะไร? ฉันจะแก้ไขปัญหานี้ได้อย่างไร? แอปของฉันกำลังทำงาน แต่ไม่สามารถโหลดข้อมูลได้ และนี่คือข้อผิดพลาดของฉัน: ใช้ JsonReader.setLenient (true) เพื่อยอมรับ JSON ที่ผิดรูปแบบที่บรรทัด 1 คอลัมน์ 1 เส้นทาง $ นี่คือส่วนของฉัน: public class news extends Fragment { private RecyclerView recyclerView; private ArrayList&lt;Deatails&gt; data; private DataAdapter adapter; private View myFragmentView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { myFragmentView = inflater.inflate(R.layout.news, container, false); …
111 android  json  gson  retrofit 

4
ใช้ GSON เพื่อแยกวิเคราะห์อาร์เรย์ JSON
ฉันมีไฟล์ JSON ดังนี้: [ { "number": "3", "title": "hello_world", }, { "number": "2", "title": "hello_world", } ] ก่อนหน้านี้เมื่อไฟล์มีองค์ประกอบรูทฉันจะใช้: Wrapper w = gson.fromJson(JSONSTRING, Wrapper.class); code แต่ฉันคิดไม่ออกว่าจะโค้ดWrapperคลาสอย่างไรเนื่องจากองค์ประกอบรูทเป็นอาร์เรย์ ฉันได้ลองใช้: Wrapper[] wrapper = gson.fromJson(jsonLine, Wrapper[].class); กับ: public class Wrapper{ String number; String title; } แต่ยังไม่มีโชค ฉันจะอ่านสิ่งนี้โดยใช้วิธีนี้ได้อย่างไร ปล. ฉันทำให้สิ่งนี้ใช้งานได้โดยใช้: JsonArray entries = (JsonArray) new JsonParser().parse(jsonLine); …
110 java  arrays  json  gson 

3
Kotlin Data Class จาก Json โดยใช้ GSON
ฉันมีคลาส Java POJO ดังนี้: class Topic { @SerializedName("id") long id; @SerializedName("name") String name; } และฉันมีคลาสข้อมูล Kotlin เช่นนี้ data class Topic(val id: Long, val name: String) จะจัดเตรียมjson keyตัวแปรใด ๆ ที่kotlin data classคล้ายกับ@SerializedNameคำอธิบายประกอบในตัวแปร java ได้อย่างไร
108 java  json  gson  kotlin  data-class 

4
GSON @SerializedName หลายรายการต่อฟิลด์หรือไม่
มีวิธีใดใน Gson ในการแมปฟิลด์ JSON หลายฟิลด์กับตัวแปรสมาชิกอ็อบเจ็กต์ Java เดียวหรือไม่? สมมติว่าฉันมีคลาส Java ... public class MyClass { String id; String name; } ฉันต้องการใช้คลาสเดี่ยวนี้กับสองบริการที่แตกต่างกัน อย่างไรก็ตามบริการทั้งสองนี้แตกต่างกันในวิธีการส่งคืนข้อมูล ... { "id": 2341, "person": "Bob" } ... และ ... { "id": 5382, "user": "Mary" } ... ตามลำดับ. มีวิธีใดในการแมปทั้งฟิลด์"person"และ"user"ฟิลด์ในสตริง JSON กับnameฟิลด์ในออบเจ็กต์ Java หรือไม่ (หมายเหตุ: ฉันแค่ต้องแปลงจากสตริง JSON เป็นออบเจ็กต์ Java เท่านั้น …
104 java  json  gson 

9
ความแตกต่างกับ gson
ฉันมีปัญหาในการแยกสตริง json กับ Gson ฉันได้รับคำสั่งมากมาย คำสั่งสามารถเริ่มต้นหยุดคำสั่งประเภทอื่น ๆ โดยปกติฉันมีความหลากหลายและคำสั่ง start / stop สืบทอดจากคำสั่ง ฉันจะทำให้เป็นอนุกรมกลับไปยังวัตถุคำสั่งที่ถูกต้องโดยใช้ gson ได้อย่างไร ดูเหมือนว่าฉันได้รับเฉพาะประเภทพื้นฐานนั่นคือประเภทที่ประกาศและไม่เคยเป็นประเภทรันไทม์

3
Gson seralizer ที่กำหนดเองสำหรับตัวแปรเดียว (จากหลายตัว) ในวัตถุโดยใช้ TypeAdapter
ฉันได้เห็นตัวอย่างง่ายๆมากมายเกี่ยวกับการใช้ TypeAdapter ที่กำหนดเอง Class TypeAdapter&lt;T&gt;เป็นประโยชน์มากที่สุดได้รับ แต่นั่นยังไม่ตอบคำถามของฉัน ฉันต้องการปรับแต่งการทำให้เป็นอนุกรมของฟิลด์เดียวในออบเจ็กต์และปล่อยให้กลไก Gson เริ่มต้นดูแลส่วนที่เหลือ เพื่อจุดประสงค์ในการสนทนาเราสามารถใช้นิยามคลาสนี้เป็นคลาสของอ็อบเจ็กต์ที่ฉันต้องการทำให้เป็นอนุกรม ฉันต้องการให้ Gson ทำให้สมาชิกสองคลาสแรกเป็นอนุกรมรวมทั้งสมาชิกที่เปิดเผยทั้งหมดของคลาสพื้นฐานและฉันต้องการทำซีเรียลไลเซชันแบบกำหนดเองสำหรับสมาชิกคลาสที่ 3 และคลาสสุดท้ายที่แสดงด้านล่าง public class MyClass extends SomeClass { @Expose private HashMap&lt;String, MyObject1&gt; lists; @Expose private HashMap&lt;String, MyObject2&gt; sources; private LinkedHashMap&lt;String, SomeClass&gt; customSerializeThis; [snip] }

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.