الحفاظ على الأصفار المتري في json marshaled tell-point number
يمكن أن يؤدي ذلك إلى فقدان الدقة في سيناريوهات معينة. يمكن أن يكون هذا السلوك مشكلة إذا كانت البرامج الخارجية تتوقع أرقامًا عائمة مع الأصفار الزائدة. إليك مثال:اكتب knowzero float64 func (f knowzero) marshaljson () ([] byte ، error) { إذا float64 (f) == float64 (int (f)) { إرجاع [] بايت (strconv.formatfloat (float64 (f) ، 'f' ، 1 ، 32)) ، لا شيء } إرجاع [] بايت (strconv.formatfloat (float64 (f) ، 'f' ، -1 ، 32)) ، لا شيء }
في هذا النوع المخصص ، تقوم طريقة Marshaljson () بتحويل العوام إلى سلسلة ذات مكان واحد عشري (إذا كان رقمًا كاملًا) أو يحافظ على جميع الأماكن العشرية (إذا لم يكن رقمًا كاملًا).
قيمة knowzero سلسلة الوحدة } Func Main () { البيانات ، err: = json.marshal (pt {value: 40.0 ، الوحدة: "some_string"}) fmt.println (سلسلة (بيانات) ، خطأ) }يخرج هذا الرمز {"value": 40.0 ، "unit": "some_string"} & lt ؛ nil & gt ؛ ، الحفاظ على الصفر في الإخراج json.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3