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

การทำให้เป็นอนุกรมเป็นกระบวนการที่โครงสร้างข้อมูลจะถูกแปลงเป็นรูปแบบที่สามารถจัดเก็บหรือส่งได้อย่างง่ายดายและสร้างขึ้นใหม่ในภายหลัง

11
ฉันจะอ่านค่า JSON หลายค่าจากไฟล์ / สตรีมใน Python อย่างเกียจคร้านได้อย่างไร
ฉันต้องการอ่านออบเจ็กต์ JSON หลายรายการจากไฟล์ / สตรีมใน Python ทีละรายการ น่าเสียดายที่json.load()เพิ่ง.read()ถึงจุดสิ้นสุดของไฟล์ ดูเหมือนจะไม่มีวิธีใดเลยที่จะใช้เพื่ออ่านวัตถุชิ้นเดียวหรืออ่านซ้ำบนวัตถุอย่างเกียจคร้าน มีวิธีใดบ้างที่จะทำเช่นนี้? การใช้ไลบรารีมาตรฐานจะดีที่สุด แต่ถ้ามีไลบรารีของบุคคลที่สามฉันจะใช้สิ่งนั้นแทน ในขณะนี้ฉันวางวัตถุแต่ละชิ้นไว้ในบรรทัดแยกกันและใช้json.loads(f.readline())งาน แต่ฉันไม่ต้องการทำสิ่งนี้จริงๆ ตัวอย่างการใช้งาน example.py import my_json as json import sys for o in json.iterload(sys.stdin): print("Working on a", type(o)) ใน. txt {"foo": ["bar", "baz"]} 1 2 [] 4 5 6 ตัวอย่างเซสชัน $ python3.2 example.py < in.txt Working on a …

1
เมื่อใดควรใช้ Serializer ของ create () และสร้าง () perform_create () ของ ModelViewset
ฉันต้องการชี้แจงเอกสารที่ระบุdjango-rest-frameworkเกี่ยวกับการสร้างวัตถุแบบจำลอง จนถึงตอนนี้ฉันพบว่ามี 3 แนวทางในการจัดการกับเหตุการณ์ดังกล่าว create()วิธีการของ Serializer นี่คือเอกสาร class CommentSerializer(serializers.Serializer): def create(self, validated_data): return Comment.objects.create(**validated_data) create()วิธีModelViewset เอกสารประกอบ class AccountViewSet(viewsets.ModelViewSet): queryset = Account.objects.all() serializer_class = AccountSerializer permission_classes = [IsAccountAdminOrReadOnly] perform_create()วิธีModelViewset เอกสารประกอบ class SnippetViewSet(viewsets.ModelViewSet): def perform_create(self, serializer): serializer.save(owner=self.request.user) แนวทางทั้งสามนี้มีความสำคัญขึ้นอยู่กับสภาพแวดล้อมการใช้งานของคุณ แต่เราต้องใช้แต่ละcreate() / perform_create()ฟังก์ชันเมื่อใด ??. บนมืออื่น ๆ ผมพบว่าบัญชีของบางอย่างที่สองสร้างวิธีการที่ถูกเรียกร้องให้มีการโพสต์คำขอเดียว modelviewset ของcreate()และของ create()serializer หวังว่าทุกคนจะแบ่งปันความรู้เพื่ออธิบายและสิ่งนี้จะเป็นประโยชน์อย่างมากในกระบวนการพัฒนาของฉัน

4
Json.net serialize / deserialize ประเภทที่ได้รับ?
json.net (newtonsoft) ฉันกำลังดูเอกสาร แต่ไม่พบอะไรเกี่ยวกับสิ่งนี้หรือวิธีที่ดีที่สุดที่จะทำ public class Base { public string Name; } public class Derived : Base { public string Something; } JsonConvert.Deserialize<List<Base>>(text); ตอนนี้ฉันมีวัตถุที่ได้รับมาในรายการที่ทำให้เป็นอนุกรม ฉันจะยกเลิกการเชื่อมต่อรายการและรับประเภทที่ได้รับกลับคืนมาได้อย่างไร

3
วิธีการทำให้ JObject เป็นอนุกรมโดยไม่ต้องจัดรูปแบบ?
ฉันมีJObject(ฉันใช้ Json.Net) ที่ฉันสร้างด้วย LINQ เป็น JSON (มีให้โดยไลบรารีเดียวกัน) เมื่อฉันเรียกใช้ToString()วิธีการบนJObjectมันจะแสดงผลลัพธ์เป็น JSON ที่จัดรูปแบบ ฉันจะตั้งค่าการจัดรูปแบบเป็น "ไม่มี" ได้อย่างไร

15
วิธีการซ่อมแซมสตริงที่เป็นอนุกรมซึ่งเสียหายจากความยาวนับไบต์ที่ไม่ถูกต้อง
ฉันใช้ Hotaru CMS กับปลั๊กอินอัพโหลดรูปภาพฉันได้รับข้อผิดพลาดนี้หากฉันพยายามแนบรูปภาพไปยังโพสต์มิฉะนั้นจะไม่มีข้อผิดพลาด: Unserialize () [function.unserialize]: เกิดข้อผิดพลาดที่ offset รหัสที่กระทำผิด (ข้อผิดพลาดชี้ให้สอดคล้องกับ **): /** * Retrieve submission step data * * @param $key - empty when setting * @return bool */ public function loadSubmitData($h, $key = '') { // delete everything in this table older than 30 minutes: $this->deleteTempData($h->db); if (!$key) …

9
ประโยชน์ของการใช้ Parcelable แทนการทำให้เป็นอนุกรมวัตถุ
ตามที่ฉันเข้าใจBundleและParcelableเป็นของวิธีที่ Android ดำเนินการทำให้เป็นอนุกรมซึ่งใช้เป็นตัวอย่างในการส่งผ่านข้อมูลระหว่างกิจกรรมต่างๆ แต่ฉันสงสัยว่ามีประโยชน์ในการใช้Parcelableแทนการทำให้อนุกรมแบบคลาสสิกในกรณีที่บันทึกสถานะของวัตถุทางธุรกิจของฉันลงในหน่วยความจำภายในหรือไม่? จะง่ายกว่าหรือเร็วกว่าวิธีคลาสสิก? ฉันควรใช้การทำให้เป็นอนุกรมแบบคลาสสิกที่ไหนและควรใช้บันเดิลที่ไหนดีกว่า

6
การกำหนดอนุกรมแบบกำหนดเองของ Jackson JSON สำหรับบางฟิลด์
มีวิธีใช้ Jackson JSON Processor เพื่อทำการซีเรียลไลเซชันระดับฟิลด์แบบกำหนดเองหรือไม่? ตัวอย่างเช่นฉันต้องการเรียน public class Person { public String name; public int age; public int favoriteNumber; } อนุกรมกับ JSON ต่อไปนี้: { "name": "Joe", "age": 25, "favoriteNumber": "123" } หมายเหตุว่าอายุ = 25 จะถูกเข้ารหัสเป็นจำนวนขณะ favoriteNumber = 123 ถูกเข้ารหัสเป็นสตริง ออกจากมาร์แชลกล่องแจ็คสันintเป็นตัวเลข ในกรณีนี้ฉันต้องการให้ favoriteNumber เข้ารหัสเป็นสตริง

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

7
การต่อสมาชิก Enum เป็น JSON
ฉันจะทำให้EnumสมาชิกPython เป็นอนุกรมเป็นJSON ได้อย่างไรเพื่อที่ฉันจะสามารถยกเลิกการกำหนดค่า JSON ที่เป็นผลลัพธ์กลับไปยังวัตถุ Python ได้ ตัวอย่างเช่นรหัสนี้: from enum import Enum import json class Status(Enum): success = 0 json.dumps(Status.success) ผลลัพธ์ในข้อผิดพลาด: TypeError: <Status.success: 0> is not JSON serializable ฉันจะหลีกเลี่ยงสิ่งนั้นได้อย่างไร?

6
จะบันทึก / กู้คืนอ็อบเจกต์ต่อเนื่องเป็น / จากไฟล์ได้อย่างไร?
ฉันมีรายการวัตถุและฉันต้องการบันทึกไว้ที่ใดที่หนึ่งในคอมพิวเตอร์ของฉัน Serializableฉันได้อ่านฟอรั่มบางอย่างและฉันรู้ว่าวัตถุที่จะต้องมี แต่คงจะดีถ้าได้ตัวอย่าง ตัวอย่างเช่นหากฉันมีสิ่งต่อไปนี้: [Serializable] public class SomeClass { public string someProperty { get; set; } } SomeClass object1 = new SomeClass { someProperty = "someString" }; แต่ฉันจะเก็บไว้object1ที่ไหนสักแห่งในคอมพิวเตอร์ของฉันและเรียกดูในภายหลังได้อย่างไร

9
วิธีตรวจสอบว่าวัตถุสามารถต่ออนุกรมได้ใน C # หรือไม่
ฉันกำลังมองหาวิธีง่ายๆในการตรวจสอบว่าวัตถุใน C # สามารถต่ออนุกรมกันได้หรือไม่ อย่างที่เราทราบกันดีว่าคุณสร้างออบเจ็กต์ที่สามารถทำให้เป็นอนุกรมได้โดยการใช้อินเทอร์เฟซISerializableหรือโดยการวาง[Serializable]ที่ด้านบนสุดของคลาส สิ่งที่ฉันกำลังมองหาคือวิธีที่รวดเร็วในการตรวจสอบสิ่งนี้โดยไม่ต้องสะท้อนถึงคลาสเพื่อให้ได้แอตทริบิวต์ อินเทอร์เฟซจะรวดเร็วโดยใช้คำสั่งis ใช้คำแนะนำของ @ Flard นี่คือรหัสที่ฉันคิดขึ้นมาว่ามีวิธีที่ดีกว่านี้ private static bool IsSerializable(T obj) { return ((obj is ISerializable) || (Attribute.IsDefined(typeof (T), typeof (SerializableAttribute)))); } หรือดีกว่าเพียงแค่รับประเภทของวัตถุจากนั้นใช้คุณสมบัติ IsSerializable กับประเภท: typeof(T).IsSerializable โปรดจำไว้ว่าสิ่งนี้ดูเหมือนจะเป็นเพียงคลาสที่เรากำลังจัดการอยู่หากคลาสนั้นมีคลาสอื่น ๆ ที่คุณอาจต้องการตรวจสอบทั้งหมดหรือลองจัดลำดับและรอข้อผิดพลาดตามที่ @pb ชี้ไว้
94 c#  serialization 

3
สามารถจัดเก็บได้ที่ไหน / เมื่อใดที่ใช้ DescriptionContents ()?
ไม่มีใครรู้ว่าวิธีนี้เรียกว่าParcelableที่ไหน / เมื่อไหร่? @Override public int describeContents() { return 0; } จะต้องมีการลบล้าง แต่ฉันควรทำสิ่งที่เป็นประโยชน์กับมันไหม

6
ทำให้อนุกรมของ int ว่างเปล่า
ฉันมีคลาสที่มี int ว่างเปล่า? ประเภทข้อมูลตั้งค่าให้เป็นอนุกรมเป็นองค์ประกอบ xml มีวิธีใดบ้างในการตั้งค่าเพื่อให้ xml serializer จะไม่ทำให้อนุกรมขององค์ประกอบถ้าค่าเป็นโมฆะ ฉันพยายามเพิ่มแอตทริบิวต์ [System.Xml.Serialization.XmlElement (IsNullable = false)] แต่ฉันได้รับข้อยกเว้นการทำให้เป็นอนุกรมรันไทม์แจ้งว่ามีข้อผิดพลาดที่แสดงถึงประเภทเนื่องจาก "IsNullable อาจไม่ถูกตั้งค่าเป็น 'false "สำหรับประเภท Nullable ให้พิจารณาใช้ประเภท" System.Int32 "หรือลบคุณสมบัติ IsNullable ออกจากแอตทริบิวต์ XmlElement" [Serializable] [System.Xml.Serialization.XmlRoot("Score", Namespace = "http://mycomp.com/test/score/v1")] public class Score { private int? iID_m; ... /// <summary> /// /// </summary> public int? ID { get { …
92 c#  .net  xml  serialization 


11
ตรวจสอบว่าวัตถุเป็นตัวเลขใน C # หรือไม่
ฉันต้องการที่จะตรวจสอบว่าวัตถุเป็นจำนวนเพื่อที่.ToString()จะส่งผลให้สตริงที่มีตัวเลขและ+, -,. เป็นไปได้ไหมโดยพิมพ์เช็คอิน. net (like:) if (p is Number)? หรือฉันควรแปลงเป็นสตริงแล้วลองแยกวิเคราะห์เป็นสองเท่า? อัปเดต:เพื่อชี้แจงว่าวัตถุของฉันคือ int, uint, float, double และอื่น ๆ ไม่ใช่สตริง ฉันกำลังพยายามสร้างฟังก์ชันที่จะทำให้วัตถุใด ๆ เป็นอนุกรมเป็น xml ดังนี้: <string>content</string> หรือ <numeric>123.3</numeric> หรือเพิ่มข้อยกเว้น

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