การถอดรหัส JSON โดยใช้ json.Unmarshal vs json.NewDecoder.Decode
ฉันกำลังพัฒนาไคลเอนต์ API ที่ฉันต้องการเข้ารหัส JSON payload ตามคำขอและถอดรหัสเนื้อหาของ JSON จากการตอบสนอง ฉันอ่านซอร์สโค้ดจากหลาย ๆ ไลบรารีและจากสิ่งที่ฉันเห็นฉันมีความเป็นไปได้สองอย่างในการเข้ารหัสและถอดรหัสสตริง JSON ใช้json.Unmarshalผ่านสตริงการตอบสนองทั้งหมด data, err := ioutil.ReadAll(resp.Body) if err == nil && data != nil { err = json.Unmarshal(data, value) } หรือใช้ json.NewDecoder.Decode err = json.NewDecoder(resp.Body).Decode(value) ในกรณีของฉันเมื่อจัดการกับการตอบกลับ HTTP ที่ใช้งานio.Readerดูเหมือนว่ารุ่นที่สองจะต้องใช้รหัสน้อยลง แต่เนื่องจากฉันได้เห็นทั้งคู่ฉันสงสัยว่ามีการตั้งค่าใด ๆ ว่าฉันควรใช้โซลูชันมากกว่าที่อื่นหรือไม่ ยิ่งกว่านั้นคำตอบที่ได้รับการยอมรับจากคำถามนี้บอกว่า โดยใช้แทนjson.Decoderjson.Unmarshal แต่มันไม่ได้พูดถึงเหตุผล ฉันควรหลีกเลี่ยงการใช้งานจริงjson.Unmarshalหรือ