java হওয একটি জson কী উপস্থিত থাকলে কিভাবে পরীক্ষা করবেন?




ধৈর্যের ফল (8)

সুতরাং, আমি সার্ভার থেকে কিছু JSON মান পেয়েছি কিন্তু কোন নির্দিষ্ট ক্ষেত্র থাকবে কিনা তা আমি জানি না।

তাই মত:

{ "regatta_name":"ProbaRegatta",
  "country":"Congo",
  "status":"invited"
}

এবং কখনও কখনও, একটি অতিরিক্ত ক্ষেত্র হবে যেমন:

{ "regatta_name":"ProbaRegatta",
  "country":"Congo",
  "status":"invited",
  "club":"somevalue"
}

আমি "ক্লাব" নামক ক্ষেত্রটি বিদ্যমান কিনা তা পরীক্ষা করতে চাই যাতে পার্সিংয়ে আমি org.json.JSONException পাই না : ক্লাবের জন্য কোন মূল্য নেই


I used hasOwnProperty('club')

var myobj = { "regatta_name":"ProbaRegatta",
    "country":"Congo",
    "status":"invited"
 };

 if ( myobj.hasOwnProperty("club"))
     // do something with club (will be false with above data)
     var data = myobj.club;
 if ( myobj.hasOwnProperty("status"))
     // do something with the status field. (will be true with above ..)
     var data = myobj.status;

সব বর্তমান ব্রাউজারে কাজ করে।


আপনি যেখানে 'HAS' এই ভাবে চেক করতে পারেন - যদি এই বস্তুর নামটির জন্য একটি মানচিত্র থাকে তবে সত্যটি ফেরত দেয়। ম্যাপিং নুল হতে পারে।

if (json.has("status")) {
   String status = json.getString("status"));
}

if (json.has("club")) {
   String club = json.getString("club"));
}

আপনি 'isNull' ব্যবহার করেও চেক করতে পারেন - যদি এই বস্তুর নামটির জন্য কোন মানচিত্র না থাকে অথবা এটির মানচিত্র থাকে যার মান NULL থাকে তবে সত্যটি ফেরত দেয়।

if (!json.isNull("club"))
    String club = json.getString("club"));

আপনি JSONObject#has থাকতে পারে, ইনপুট হিসাবে key সরবরাহ করে এবং পদ্ধতিটি true বা JSONObject#has ফেরত কিনা তা পরীক্ষা করে দেখুন। তুমিও পারো

getString পরিবর্তে optString ব্যবহার করুন:

যদি বিদ্যমান থাকে তবে নাম দ্বারা মানচিত্রে মান প্রদান করে, যদি প্রয়োজন হয় তবে এটি coercing করে। কোন ধরনের মানচিত্র বিদ্যমান থাকলে খালি স্ট্রিং প্রদান করে


আমি শুধু আরেকটি জিনিস যুক্ত করছি, যদি আপনি কেবল JSONObject এ কিছু তৈরি করা হয় কিনা তা পরীক্ষা করতে চান বা আপনি দৈর্ঘ্য () ব্যবহার করতে পারেন না, কারণ ডিফল্টভাবে JSONObject শুরু হয়ে গেলে এবং কোনও কী সন্নিবেশ করা হয় না, এটি কেবল খালি ধনুর্বন্ধনী {} এবং ব্যবহার করে (স্ট্রিং কী) কোন ধারনা করে না।

সুতরাং যদি আপনি সরাসরি লিখতে if (jsonObject.length() > 0) এবং আপনার জিনিসগুলি করুন।

শুভ শিক্ষা!


আপনি ব্যবহার করতে পারেন

public boolean has(String key)

JSONObject একটি নির্দিষ্ট কী রয়েছে কিনা তা নির্ধারণ করুন।

উদাহরণ

JSONObject JsonObj = new JSONObject(Your_API_STRING); //JSONObject is an unordered collection of name/value pairs

if (JsonObj.has("address")) { 
    //Checking address Key Present or not
    String get_address = JsonObj .getString("address"); // Present Key
}
else {
    //Do Your Staff
}

শুধু পড়া আগে এটি পড়া আগে মত চেক

JSONObject json_obj=new JSONObject(yourjsonstr);
if(!json_obj.isNull("club"))
{
  //it's contain value to be read operation
}
else
{
  //it's not contain key club or isnull so do this operation here
}

isNull ফাংশন সংজ্ঞা

Returns true if this object has no mapping for name or
if it has a mapping whose value is NULL. 

isNull ফাংশন জন্য নীচের লিংক অফিসিয়াল ডকুমেন্টেশন

http://developer.android.com/reference/org/json/JSONObject.html#isNull(java.lang.String)



এটা চেষ্টা কর

if(!jsonObj.isNull("club")){
    jsonObj.getString("club");
}






json