-
@yossiz
היא עושה SerializeObject לאובייקט ממשי, ולא לאובייקט וירטואלי שיכול לקבל כל ערך.
אלא יש שם כבר פרופרטיז, והSerializeObject ממיר את זה אוטומטית.ואני רציתי ללכת בכיוון שאם השדה לא נמצא אז שלא ייכנס, או שיהיה שם ערך קבוע (לדוגמא אם זה שדה מספרי שהערך הולידי שלו הוא מעל אפס, שיהיה שם -1 ואז לבדוק אם זה שווה -1 ואז להמשיך וכו)
אבל לכאורה אפשר לזרום גם עם הרעיון שלך
public static bool HasProperty(this object obj, string propertyName) { return obj.GetType().GetProperty(propertyName) != null; }
מול אובייקט לא מוגדר
ואז פשוט לבדוק אם הפרופרטי קיים שם.מקור לכיוון
https://stackoverflow.com/questions/15341028/check-if-a-property-exist-in-a-class -
@clickone לא מסכים איתך
גם אם התשובה תגיע אחרי חצי שעה, לא קרה כלום שהיא לא רואה. ההודעות פה לא נמחקות
אז מחר היא תבוא ותראה !
מאד יכול להיות שאדם שואל שאלה והוא בונה על זה שיכול להיות שמי שיש לו את הידע, לא נמצא כעת בפורום, אבל יענה לה בהמשך
מאד יכול ליות שהיא לא יכולה לחכות כי היא עסוקה -
@clickone לא מסכים איתך
גם אם התשובה תגיע אחרי חצי שעה, לא קרה כלום שהיא לא רואה. ההודעות פה לא נמחקות
אז מחר היא תבוא ותראה !
מאד יכול להיות שאדם שואל שאלה והוא בונה על זה שיכול להיות שמי שיש לו את הידע, לא נמצא כעת בפורום, אבל יענה לה בהמשך
מאד יכול ליות שהיא לא יכולה לחכות כי היא עסוקהלי קורה שי לי שאלות אפילו דחופות, אבל יש משימות עוד יותר דחופות, כך שנוצר מצב ששאלתי שאלה ורק אחרי יומיים (או יותר) חזרתי לראות את התשובות
-
תודה רבה על התגובות! (היה יום הזיכרון ויום העצמאות..)
את ה-API, אני כותבת בשפת scala, אבל נראה לי שהבעיה גם קיימת ב-java
כאשר ה-json עובר deserialization לאובייקט, שני המצבים הבאים יקבלו ערך null:- key ששלחנו לו ערך Null
- key שלא שלחנו בכלל
אני לא רוצה לוותר על האפשרות לעשות deserialization לאובייקט, בגלל שזה נותן לי בלי מאמץ וולידציות לסוגי הערכים שנשלחים.
חשבתי אולי משהו בכיוון הזה - אבל לא בדקתי את זה עד הסוף: להשתמש deserialization לאובייקט רק בשביל הוולידציה, אבל אח"כ להמיר את זה לרשימה של key value list (זה אפשרי??), ולכתוב פונקציה שבונה sql update statement של כל הערכים ברשימה.
- אני לא יודעת אם אפשרי להמיר json ל-key value list
- איך אדע איזה מהם עמודת ה-ID בשביל ה-where statement
עוד פיתרון שחשבתי, אבל הר"צ לא כ"כ אהב
ערך שאני רוצה לעדכן כ-null, אשלח אותו כמחרוזת "null" וארשום טיפול מיוחד במחרוזת הזאת -
בפייתון השתמשתי בספריה שנקראת marshmallow שיש בה אפשרות ליצור scheme, שניתן להגדיר איתה בכל טופס שרוצים למלאות, איזה שדות למלאות, ואפשר להגדיר איזה KEY מהג'ייסון יתאים לאיזה שדה וכו', וניתן להגדיר לאותו טופס כמה סכמות ולקרוא כל פעם לסכמה הרצויה. ועוד אופציות רבות נוספות.
בג'אוה לא יצא לי להשתמש במשהו דומה אבל אני בטוח שיש ספריה כזו שיותרת סכמות -