דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. לולאה בJSON

לולאה בJSON

מתוזמן נעוץ נעול הועבר תכנות
10 פוסטים 4 כותבים 323 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש
    ש
    ש.ב.ח.
    כתב ב נערך לאחרונה על ידי
    #1

    שלום למומחים.

    ביצעתי AJAX לקבל JSON מסויים
    הJSON מקונן בכמה רמות עומק

    אני מעוניין לבצע עליו לולאה בהתאם לבחירת המשתמש
    כלומר:
    בוא נאמר שיש שלושה ילדים לJSON - לכל אחד מהם ילדים וצאצאים וצאצאי צאצאים (בקיצור נחת מכולם!!! 🙂 )
    הלקוח בוחר בכפתור בערך שהוא בעצם השם של אחד מהילדים הראשיים.
    ברגע זה הוא יקבל מספר אלמנטים שמכילים ערכים מתוך הצאצאים והצאצאי צאצאים וכו'....

    אם זה היה מערך ככל הנראה זה היה בקלות, אך לצערי כשהוא אובייקט JSON הוא מחזיק רק את הערך של כל key ולא את כל הצאצאים.

    תגובה 1 תגובה אחרונה
    0
    • dovidD
      dovidD
      dovid
      ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      ניסית משהו?
      תכתוב קוד ותראה איפה נתקעת.
      אחרי שקיבלת את התשובה מהשרת בפורמט JSON מעתה ואילך זה אובייקט JS.
      בשביל לגשת לכלל המאפיינים של אובייקט, אפשר לגשת אל אוסף המפתחות ע"י Object.keys או לעשות לולאת for .. in.

      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
      ש 2 תגובות תגובה אחרונה
      3
      • dovidD dovid

        ניסית משהו?
        תכתוב קוד ותראה איפה נתקעת.
        אחרי שקיבלת את התשובה מהשרת בפורמט JSON מעתה ואילך זה אובייקט JS.
        בשביל לגשת לכלל המאפיינים של אובייקט, אפשר לגשת אל אוסף המפתחות ע"י Object.keys או לעשות לולאת for .. in.

        ש
        ש
        ש.ב.ח.
        כתב ב נערך לאחרונה על ידי
        #3

        @dovid אמר בלולאה בJSON:

        for .. in.

        אז זהו שעשיתי forache, אני מבין ששגיתי בהכללה בין מערך לאובייקט.. כן?

        תגובה 1 תגובה אחרונה
        0
        • י
          י
          יוסף בן שמעון
          כתב ב נערך לאחרונה על ידי
          #4

          @dovid אמר בלולאה בJSON:

          נכון, forEach עובד רק על מערכים

          תגובה 1 תגובה אחרונה
          0
          • dovidD dovid

            ניסית משהו?
            תכתוב קוד ותראה איפה נתקעת.
            אחרי שקיבלת את התשובה מהשרת בפורמט JSON מעתה ואילך זה אובייקט JS.
            בשביל לגשת לכלל המאפיינים של אובייקט, אפשר לגשת אל אוסף המפתחות ע"י Object.keys או לעשות לולאת for .. in.

            ש
            ש
            ש.ב.ח.
            כתב ב נערך לאחרונה על ידי
            #5

            @dovid אמר בלולאה בJSON:

            לעשות לולאת for .. in.

            אבל זה גם מחזיר לי רק את המפתח בלי הידלים שלו.

            הנה האובייקט:

            var income =
            {
            "הכנסות": {
                "1": {
                    "name": "חודשית קבועה",
                    "content": {
                            "111": {
                                "name": "משכורות בעל",
                                "settings": {
                                         "day_field": true,
                                         "month_field": false
                                            },
                                "count_rows_registered": 1,
                                "rows_registered": [
                                    {
                                    "index_row": 1,
                                    "date_registered": "12",
                                    "type": "1212",
                                    "ID_type": "1",
                                    "category_name": "12121",
                                    "ID_category": "111",
                                    "dete_in_payment": "לא קבוע",
                                    "Amount": "12",
                                    "method_payment": "12"
                                    }
                                ]
                            },
                            "114": {
                                "name": "משכורות אשה",
                                "settings": {
                                        "day_field": true,
                                        "month_field": true
                                        },
                                "count_rows_registered": null,
                                "rows_registered": [ ]
                            }
                    }
                },
            
                "2": {
                    "name": "חודשית משתנה",
                    "content": {
                            "121": {
                                "name": "משכורות בעל",
                                "settings": {
                                    "day_field": true,
                                    "month_field": true
                                    },
                                "count_rows_registered": null,
                                "rows_registered": [ ]
                            },
                            "124": {
                                "name": "משכורות אשה",
                                "settings": {
                                    "day_field": true,
                                    "month_field": true
                                },
                                "count_rows_registered": null,
                                "rows_registered": [ ]
                            },
                        "127": {
                            "name": "משכורת נוספת",
                            "settings": {
                                "day_field": true,
                                "month_field": true
                            },
                            "count_rows_registered": null,
                            "rows_registered": [ ]
                        },
                    }
                }
                
            },
                "הוצאות": {
                "1": {
                    "name": "חודשית קבועה",
                    "content": {
                            "111": {
                                "name": "משכורות בעל",
                                "settings": {
                                         "day_field": true,
                                         "month_field": false
                                            },
                                "count_rows_registered": 1,
                                "rows_registered": [
                                    {
                                    "index_row": 1,
                                    "date_registered": "12",
                                    "type": "1212",
                                    "ID_type": "1",
                                    "category_name": "12121",
                                    "ID_category": "111",
                                    "dete_in_payment": "לא קבוע",
                                    "Amount": "12",
                                    "method_payment": "12"
                                    }
                                ]
                            },
                            "114": {
                                "name": "משכורות אשה",
                                "settings": {
                                        "day_field": true,
                                        "month_field": true
                                        },
                                "count_rows_registered": null,
                                "rows_registered": [ ]
                            }
                    }
                },
            
                "2": {
                    "name": "חודשית משתנה",
                    "content": {
                            "121": {
                                "name": "משכורות בעל",
                                "settings": {
                                    "day_field": true,
                                    "month_field": true
                                    },
                                "count_rows_registered": null,
                                "rows_registered": [ ]
                            },
                            "124": {
                                "name": "משכורות אשה",
                                "settings": {
                                    "day_field": true,
                                    "month_field": true
                                },
                                "count_rows_registered": null,
                                "rows_registered": [ ]
                            },
                        "127": {
                            "name": "משכורת נוספת",
                            "settings": {
                                "day_field": true,
                                "month_field": true
                            },
                            "count_rows_registered": null,
                            "rows_registered": [ ]
                        },
                    }
                }
                
            }
            };
            

            וזה הלולאה לעת עתה

            for(let type in income.הכנסות){
              
              var no = type;
              
              var name = type.name;
               
              console.log(name);
            }
            

            הname מחזיר undefined

            ברור לי שחסר לי משהו בfor אשמח אם מישהו יעיר את עיני.

            yossizY תגובה 1 תגובה אחרונה
            0
            • dovidD
              dovidD
              dovid
              ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              נכון זה נותן לך את המפתח ועם המפתח אתה יכול לפתוח את הדלת:

              console.log(income.הכנסות[type]);
              
              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              ש תגובה 1 תגובה אחרונה
              3
              • ש ש.ב.ח.

                @dovid אמר בלולאה בJSON:

                לעשות לולאת for .. in.

                אבל זה גם מחזיר לי רק את המפתח בלי הידלים שלו.

                הנה האובייקט:

                var income =
                {
                "הכנסות": {
                    "1": {
                        "name": "חודשית קבועה",
                        "content": {
                                "111": {
                                    "name": "משכורות בעל",
                                    "settings": {
                                             "day_field": true,
                                             "month_field": false
                                                },
                                    "count_rows_registered": 1,
                                    "rows_registered": [
                                        {
                                        "index_row": 1,
                                        "date_registered": "12",
                                        "type": "1212",
                                        "ID_type": "1",
                                        "category_name": "12121",
                                        "ID_category": "111",
                                        "dete_in_payment": "לא קבוע",
                                        "Amount": "12",
                                        "method_payment": "12"
                                        }
                                    ]
                                },
                                "114": {
                                    "name": "משכורות אשה",
                                    "settings": {
                                            "day_field": true,
                                            "month_field": true
                                            },
                                    "count_rows_registered": null,
                                    "rows_registered": [ ]
                                }
                        }
                    },
                
                    "2": {
                        "name": "חודשית משתנה",
                        "content": {
                                "121": {
                                    "name": "משכורות בעל",
                                    "settings": {
                                        "day_field": true,
                                        "month_field": true
                                        },
                                    "count_rows_registered": null,
                                    "rows_registered": [ ]
                                },
                                "124": {
                                    "name": "משכורות אשה",
                                    "settings": {
                                        "day_field": true,
                                        "month_field": true
                                    },
                                    "count_rows_registered": null,
                                    "rows_registered": [ ]
                                },
                            "127": {
                                "name": "משכורת נוספת",
                                "settings": {
                                    "day_field": true,
                                    "month_field": true
                                },
                                "count_rows_registered": null,
                                "rows_registered": [ ]
                            },
                        }
                    }
                    
                },
                    "הוצאות": {
                    "1": {
                        "name": "חודשית קבועה",
                        "content": {
                                "111": {
                                    "name": "משכורות בעל",
                                    "settings": {
                                             "day_field": true,
                                             "month_field": false
                                                },
                                    "count_rows_registered": 1,
                                    "rows_registered": [
                                        {
                                        "index_row": 1,
                                        "date_registered": "12",
                                        "type": "1212",
                                        "ID_type": "1",
                                        "category_name": "12121",
                                        "ID_category": "111",
                                        "dete_in_payment": "לא קבוע",
                                        "Amount": "12",
                                        "method_payment": "12"
                                        }
                                    ]
                                },
                                "114": {
                                    "name": "משכורות אשה",
                                    "settings": {
                                            "day_field": true,
                                            "month_field": true
                                            },
                                    "count_rows_registered": null,
                                    "rows_registered": [ ]
                                }
                        }
                    },
                
                    "2": {
                        "name": "חודשית משתנה",
                        "content": {
                                "121": {
                                    "name": "משכורות בעל",
                                    "settings": {
                                        "day_field": true,
                                        "month_field": true
                                        },
                                    "count_rows_registered": null,
                                    "rows_registered": [ ]
                                },
                                "124": {
                                    "name": "משכורות אשה",
                                    "settings": {
                                        "day_field": true,
                                        "month_field": true
                                    },
                                    "count_rows_registered": null,
                                    "rows_registered": [ ]
                                },
                            "127": {
                                "name": "משכורת נוספת",
                                "settings": {
                                    "day_field": true,
                                    "month_field": true
                                },
                                "count_rows_registered": null,
                                "rows_registered": [ ]
                            },
                        }
                    }
                    
                }
                };
                

                וזה הלולאה לעת עתה

                for(let type in income.הכנסות){
                  
                  var no = type;
                  
                  var name = type.name;
                   
                  console.log(name);
                }
                

                הname מחזיר undefined

                ברור לי שחסר לי משהו בfor אשמח אם מישהו יעיר את עיני.

                yossizY
                yossizY
                yossiz
                כתב ב נערך לאחרונה על ידי
                #7
                פוסט זה נמחק!
                תגובה 1 תגובה אחרונה
                0
                • dovidD dovid

                  נכון זה נותן לך את המפתח ועם המפתח אתה יכול לפתוח את הדלת:

                  console.log(income.הכנסות[type]);
                  
                  ש
                  ש
                  ש.ב.ח.
                  כתב ב נערך לאחרונה על ידי
                  #8

                  @dovid אמר בלולאה בJSON:

                  נכון זה נותן לך את המפתח ועם המפתח אתה יכול לפתוח את הדלת:

                  טוב,
                  כנראה שלך זה ברור שהמשתנה בלולאה מחזיק רק את הkey
                  אני די חדש בעניין וחשבתי שהוא מחזיק את כל התת משפחה של האובייקט.
                  תודה רבה על המידע.

                  dovidD תגובה 1 תגובה אחרונה
                  1
                  • ש ש.ב.ח.

                    @dovid אמר בלולאה בJSON:

                    נכון זה נותן לך את המפתח ועם המפתח אתה יכול לפתוח את הדלת:

                    טוב,
                    כנראה שלך זה ברור שהמשתנה בלולאה מחזיק רק את הkey
                    אני די חדש בעניין וחשבתי שהוא מחזיק את כל התת משפחה של האובייקט.
                    תודה רבה על המידע.

                    dovidD
                    dovidD
                    dovid
                    ניהול
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @ש-ב-ח לא פשוט לי (הייתי לא מזמן באותה סיטואציה) אבל ציפיתי ממך לחפש את הביטוי באמצעות גוגל (js for in).

                    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                    ש תגובה 1 תגובה אחרונה
                    1
                    • dovidD dovid

                      @ש-ב-ח לא פשוט לי (הייתי לא מזמן באותה סיטואציה) אבל ציפיתי ממך לחפש את הביטוי באמצעות גוגל (js for in).

                      ש
                      ש
                      ש.ב.ח.
                      כתב ב נערך לאחרונה על ידי
                      #10

                      @dovid אמר בלולאה בJSON:

                      אבל ציפיתי ממך לחפש את הביטוי באמצעות גוגל (js for in).

                      דווקא שוטטתי רבות שם בחיפוש אחר אי המטמון האבוד... אך ללא הועיל לא הצלחתי למצוא (לא חיפשתי בדיוק את התמליל שנתת אך חיפשתי את מוציאים בלולאה חלק מאובייקט בעשרות וריאציות...).
                      בכל מקרה ממש תודה.

                      תגובה 1 תגובה אחרונה
                      0

                      שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

                      נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                      בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                      הרשמה התחברות
                      תגובה
                      • תגובה כנושא
                      התחברו כדי לפרסם תגובה
                      • מהישן לחדש
                      • מהחדש לישן
                      • הכי הרבה הצבעות


                      בא תתחבר לדף היומי!
                      • התחברות

                      • אין לך חשבון עדיין? הרשמה

                      • התחברו או הירשמו כדי לחפש.
                      • פוסט ראשון
                        פוסט אחרון
                      0
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום