"-" ড্যাশ দিয়ে JSON সম্পত্তি অ্যাক্সেস করতে অক্ষম


127

স্ট্রিংয়ের ড্যাশ অক্ষর থাকলে আমি কোনও জসন বস্তু থেকে একটি মান পুনরুদ্ধার করতে অক্ষম:

{
"profile-id":1234, "user_id":6789
}

যদি আমি পার্সড রেফারেন্স দেওয়ার চেষ্টা করি তবে jsonObj.profile-idএটি ফিরে আসে ReferenceError: "id" is not definedতবে jsonObj.user_id 6789 ফিরে আসবে

বাহ্যিক এপি কল দিয়ে যে মানগুলি ফেরত আসছিল তা সংশোধন করার উপায় নেই এবং ড্যাশগুলি অপসারণ করার জন্য ফিরে আসা স্ট্রিংটিকে পার্স করার চেষ্টা করার সাথে সাথে তা উত্তীর্ণ হওয়া ইউআরএল ইত্যাদি নষ্ট করে দেবে। সহায়তার প্রয়োজন?


3
আপনি JSON কে পার্স করার জন্য কোন ভাষা / পার্সারটি ব্যবহার করার চেষ্টা করছেন তার তথ্য যুক্ত হতে পারে।
মাইক ব্রেন্ট

1
Utilities.jsonParseবেশি কিছু বলে না।
দারিন দিমিত্রভ

উত্তর:


278

jsonObj.profile-idএকটি বিয়োগের অভিব্যক্তি (অর্থাত্ jsonObj.profile - id)।

এমন একটি কী অ্যাক্সেস করতে যাতে অক্ষর রয়েছে যা সনাক্তকারীতে উপস্থিত হতে পারে না, বন্ধনী ব্যবহার করুন:

jsonObj["profile-id"]

2
ধন্যবাদ! তথ্যের জন্য: এটি কৌণিকর সাথেও কাজ করে: {son jsonObj.attributes ["প্রোফাইল-আইডি"]}}
বাস্তিয়ানসান্ডার

3
যখন এটি জাভাস্ক্রিপ্টে এবং তার স্থানীয় প্রয়োগে স্ট্রিং দ্বারা কোনও বস্তুর সম্পত্তি কী অ্যাক্সেস করার জন্য কাজ করে, নিশ্চিত এটি শীর্ষে সমস্ত কিছুতে কাজ করে
জন স্মিথ

1
জেএস "স্টাইল" অবজেক্টের জন্যও কাজ করে! @ এসএলাক্স আমি "বাক্স-ছায়া" বৈশিষ্ট্যটি নির্ধারণের জন্য জাভাস্ক্রিপ্ট স্টাইলের অবজেক্টটি ব্যবহার করার জন্য এই সমাধানটি এক্সট্রাপোল্ট করেছি। document.getElementById("someId").style["box-shadow"]="2px 2px 2px #616161";দুর্দান্ত কাজ!
এরিক হিপারল - কোডস্লেয়ার 2010

2
@ এরিকহিপারল-কোডস্লেয়ার2010: style.boxShadowপরিবর্তে আপনার ব্যবহার করা উচিত । styleবস্তুর ধর্মান্তরিত ক্যামেলকেস করার হাইফেন।
এসএলএক্স

খুব সুন্দর! ধন্যবাদ ... আমি উটের ক্ষেত্রে পছন্দ করি, পদ্ধতি আরও ভাল কারণ টাইপ করার জন্য কম অক্ষর থাকে। যাচাই করে এটি কাজ করে !!
এরিক হিপারল - কোডস্লেয়ার2010

3

এই উত্তর ছাড়াও , নোট.js এ নোট করুন যে আপনি যদি অ্যারে সিনট্যাক্সের সাহায্যে JSON অ্যাক্সেস করেন তবে []সমস্ত নেস্টেড JSON কী সেই বাক্য গঠনটি অনুসরণ করবে

এটি ভুল উপায়

json.first.second.third['comment']

এবং আপনাকে 'অপরিবর্তিত' ত্রুটি দেবে।

এটি সঠিক উপায়

json['first']['second']['third']['comment'] 

কেন এই একটি বিষয়? মুষ্টি পথটি সম্পূর্ণ স্বাভাবিক দেখায়। এটি কি ভাষায় বাগ আছে?
নিকোলা ডিক্লিক

আপনি যদি এই পদ্ধতিটি সাথে যেতে চান। Ramdajs.com/docs/#path- এর
অমৃত পাল সিং

2

উত্তরযোগ্য এবং হাইফেন ব্যবহার করার জন্য, এটি আমার পক্ষে কাজ করেছে:

    - name: free-ud-ssd-space-in-percent
      debug:
        var: clusterInfo.json.content["free-ud-ssd-space-in-percent"]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.