Soheila G
4 سال پیش توسط Soheila G مطرح شد
1 پاسخ

تفکیک کردن key های ثابت با value های مختلف درJSON

سلام میخواستم بدونم در JSON اگه ما دو یا سه key داشته باشیم و مثل هم باشن ولی value های متفاوتی داشتن چطورمیشه همشون رو parse کرد ؟ در نظر بگیرین

  {
      "id": "a۱۵۸۷۱bb.۷c۳b۲",
      "type": "input-distributer",
      "z": "c۱۹ca۳۹۳.e۱۴b۱",
      "name": "input-distributer",
      "device_id": "۹۳e۷۱ba۷-fb۵۶-۵۵۹۲-a۵f۶-d۸۵۵۲۰۳dd۷ae",
      "device_name": "nmos-cpp_node_۱۰-۲۰-۱۳۰-۲۴:۶۱۳۱",
      "audio_services": "{\"node-input-audio_services۱\":\"c۲۵۰۴۹۸b-۵۲ee-۵۱۶۲-b۴۵۰-e۱۵۹۰۵۹۱۲e۸c\",\"audio_ip_۱\":\"۱.۲.۳.۴\",\"audio_port_۱\":\"۱۲۳۴\"}",
      "video_services": "{\"node-input-video_services۱\":\"c۲۵۰۴۹۸b-۵۲ee-۵۱۶۲-b۴۵۰-e۱۵۹۰۵۹۱۲e۸c\",\"video_ip_۱\":\"۵.۶.۷.۸\",\"video_port_۱\":\"۵۶۷۸\"}",
      "x": ۲۸۰,
      "y": ۲۶۰,
      "wires": [
        [
          "۶۵۴۸d۲cb.۴۵bc۱c"
        ],
        [
          "۷cf۸bc۷e.۲۰۴a۸۴"
        ]
      ]
    },
    {
      "id": "۴۲۱da۷۶b.۶۷۰be۸",
      "type": "output-distributer",
      "z": "c۱۹ca۳۹۳.e۱۴b۱",
      "name": "output-distributer",
      "device_id": "۹۳e۷۱ba۷-fb۵۶-۵۵۹۲-a۵f۶-d۸۵۵۲۰۳dd۷ae",
      "device_name": "nmos-cpp_node_۱۰-۲۰-۱۳۰-۲۴:۶۱۳۱",
      "audio_services": "{\"node-input-audio_services۱\":\"۷d۰۱۰b۶۵-b۹d۸-۵۵۶۱-a۶۲۲-۱۸۹b۱c۰۶d۳f۹\"}",
      "video_services": "{\"node-input-video_services۱\":\"۷d۰۱۰b۶۵-b۹d۸-۵۵۶۱-a۶۲۲-۱۸۹b۱c۰۶d۳f۹\"}",
      "x": ۶۲۰,
      "y": ۲۶۰,
      "wires": [

      ]
    },
    {
      "id": "۶۵۴۸d۲cb.۴۵bc۱c",
      "type": "video-switcher",
      "z": "c۱۹ca۳۹۳.e۱۴b۱",
      "name": "video-switcher",
      "device_id": "۹۳e۷۱ba۷-fb۵۶-۵۵۹۲-a۵f۶-d۸۵۵۲۰۳dd۷ae",
      "device_name": "nmos-cpp_node_۱۰-۲۰-۱۳۰-۲۴:۶۱۳۱",
      "video_senders": "{\"node-input-senders_services۱\":\"c۲۵۰۴۹۸b-۵۲ee-۵۱۶۲-b۴۵۰-e۱۵۹۰۵۹۱۲e۸c\",\"senders_ip_۱\":\"۹.۰.۱.۲\",\"senders_port_۱\":\"۹۰۱۲\"}",
      "video_receivers": "{\"node-input-receivers_services۱\":\"۷d۰۱۰b۶۵-b۹d۸-۵۵۶۱-a۶۲۲-۱۸۹b۱c۰۶d۳f۹\"}",
      "x": ۴۸۰,
      "y": ۱۲۰,
      "wires": [
        [
          "۴۲۱da۷۶b.۶۷۰be۸"
        ]
      ]
    },
    {
      "id": "۷cf۸bc۷e.۲۰۴a۸۴",
      "type": "audio-switcher",
      "z": "c۱۹ca۳۹۳.e۱۴b۱",
      "name": "audio-switcher",
      "device_id": "fe۲۱abdf-۷۰۶f-۵c۷b-adb۸-۲۵۰۷e۱۴۵e۸۲۰",
      "device_name": "nmos-cpp_node_۱۰-۲۰-۱۳۰-۲۴:۶۱۲۱",
      "audio_senders": "{\"node-input-senders_services۱\":\"۷۴۰۸e۱be-a۲۲۷-۵d۰a-a۲۲b-۲۹۴bcf۲۲۰۱۷c\",\"senders_ip_۱\":\"۰.۰.۰.۰\",\"senders_port_۱\":\"۰۰۰۰\"}",
      "audio_receivers": "{\"node-input-receivers_services۱\":\"d۰۸f۳a۵۰-۴۱fc-۵۰۲۰-۹c۶c-۱۷۵d۹۱۸۹۱aef\"}",
      "x": ۴۴۰,
      "y": ۳۶۰,
      "wires": [
        [
          "۴۲۱da۷۶b.۶۷۰be۸"
        ]
      ]
    }
]

من میخوام device_id ها رو فراخوانی کنم همین طور که میبینین value های متفاوتی داره ولی key =device_id ثابت هستش , اینم یک فایل JSON در نظر بگیرین که من دارمش و قرار نیس بوجودش بیارم .
ممنون میشم اگه میتونین کمکم کنین.


ثبت پرسش جدید
sh.mirzaee
تخصص : برنامه نویس ارشد
@mirzaee.sh12 4 سال پیش مطرح شد
0

جیسون در واقع ساختار ارایه ای داره که یه جورایی میشه گفت پک‌شده!
به تشبیه زیر دقت کنید:
فرض کنید یه فولدر دارید توی ویندوز پر از اطلاعات(معادل آرایه)
شما برای اینکه اون فولدر رو‌ به دوستتون ایمیل کنید اون رو زیپ میکنید(‌معادل جیسون)
حالا دوستتون واسه اینکه اون‌دیتا رو ببینه بعد از دریافت فایل زیپ اون رو اکسترکت میکنه!

خب پس شما هم‌اول باید این جیسون رو (که در واقع encode شده یک آرایه هست) decode کنید و بعد با استفاده از حلقه for میتونید به صورت key ، value به مقادیر مورد نظرتون‌دسترسی داشته باشید.
برای decode در php از دستور json_decode
و‌در جاوا اسکریپت از json.parse استفاده کنید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام