يتم إعطاؤك مقتطف تعليمات برمجية يستخدم الدالة `json.Marshal()` لتحويل البنية `expectedAuthenticator.Attributes` إلى سلسلة JSON. مهمتك هي كتابة دالة تنفذ العملية العكسية، وتحول سلسلة JSON مرة أخرى إلى بنية.

اكتب دالة `unmarshalJSON(str string, v Interface{}) error` التي تأخذ معلمتين:

- `str` (سلسلة): سلسلة JSON تحتاج إلى تحويلها إلى بنية.
- `v` (interface{}): مؤشر إلى البنية التي يجب إلغاء تنظيم سلسلة JSON فيها.

يجب أن تقوم الدالة بإلغاء تنظيم سلسلة JSON في البنية المتوفرة باستخدام الدالة `json.Unmarshal()` وإرجاع أي أخطاء تحدث أثناء إلغاء التنظيم. يجب أن يكون توقيع الوظيفة:

```اذهب
خطأ func unmarshalJSON(str string, v Interface{}).
```

**مثال**
لنفترض أن لدينا سلسلة JSON التالية `"{"name": "John"، "age": 30}"` التي تمثل بنية تحتوي على حقلين: `"name"` و`"age"`. يجب أن تكون الدالة `unmarshalJSON()` قادرة على تحويل سلسلة JSON هذه مرة أخرى إلى البنية التالية:

```اذهب
اكتب بنية الشخص {
    سلسلة الاسم `json:"name"`
    العمر int `json:"age"`
}
```

بعد إلغاء تنظيم سلسلة JSON، يجب أن تحتوي البنية `Person` على القيم ``John'` و`30` المخصصة لحقولها.
{"evolved_from": null, "kind": "synthetic", "source": "argilla/DistiCoder-dpo-binarized"}