يتم منحك حزمة Go باسم "gorhsm" تتضمن بيان الاستيراد الخاص بحزمة "encoding/json". مهمتك هي إنشاء وظيفة تقوم بإجراء تسلسل لبنية Go في سلسلة JSON.

اكتب دالة بالتوقيع التالي:

```
func SerializeToJSON(واجهة الإدخال{}) (سلسلة، خطأ)
```

**مدخل**
- تأخذ الدالة معلمة إدخال واحدة `input`، والتي يمكن أن تكون من أي نوع بيانات Go صالح.

**انتاج**
- يجب أن تقوم الدالة بإرجاع سلسلة تمثل تسلسل JSON لبنية الإدخال.
- إذا كان هناك خطأ أثناء عملية التسلسل، قم بإرجاع سلسلة فارغة (`""`) وخطأ مناسب.

**أمثلة**
مثال 1:
```اذهب
اكتب بنية الشخص {
سلسلة الاسم
العمر كثافة العمليات
}

ع := الشخص {الاسم: "جون دو"، العمر: 25}
النتيجة، خطأ: = SerializeToJSON(p)
fmt.Println(result) // {"Name": "John Doe"، "Age": 25}
fmt.Println(يخطئ) // لا شيء
```

مثال 2:
```اذهب
اكتب بنية الكتاب {
سلسلة العنوان
سلسلة المؤلف
}

ب := الكتاب{العنوان: "غاتسبي العظيم"، المؤلف: "إف. سكوت فيتزجيرالد"}
النتيجة، خطأ:= SerializeToJSON(b)
fmt.Println(result) // {"Title": "The Great Gatsby"، "Author": "F. Scott Fitzgerald"}
fmt.Println(يخطئ) // لا شيء
```

مثال 3:
```اذهب
اكتب بنية InvalidStruct {
InvalidChan تشان int
}

أنا := InvalidStruct{InvalidChan: make(chan int)}
النتيجة، خطأ: = SerializeToJSON(i)
fmt.Println(النتيجة) // ""
fmt.Println(err) // json: نوع غير مدعوم: chan int
```
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}