son .Ech ব্যবহার করে জসন ডেটাতে jquery লুপ


160

আমি নিম্নলিখিত JSON ডেটা নামক একটি পরিবর্তনশীল ফিরে এসেছি।

এই সেই ফেরেশত্রে ফিরে আসা ...

[ 
{"Id": 10004, "PageName": "club"}, 
{"Id": 10040, "PageName": "qaz"}, 
{"Id": 10059, "PageName": "jjjjjjj"}
]

এবং আমি $ .each ব্যবহার করে সংগ্রহটি লুপ করার চেষ্টা করছি তবে আমি এমন সমস্যার মধ্যে চলে যাচ্ছি যেখানে সতর্কতাটি অপরিজ্ঞাত দেখাচ্ছে। আমি অনেকগুলি ভিন্ন বাক্য গঠন চেষ্টা করেছি তবে এটিকে বের করার মতো মনে হচ্ছে না।

আমি যে জিকুয়ারি ব্যবহার করছি তা হ'ল

$.each(data, function(i, item) {
    alert(item.PageName);
});

কেউ কি আমাকে সঠিক দিকে নির্দেশ করতে পারে?

সম্পাদনা করুন ডেটা ধরতে আমি এই কোডটি ব্যবহার করছি

$.getJSON('/Cms/GetPages/123', null, function(data) {
  fillSelect(data);
});

এবং এটি ফাংশন যা কল কল ডাকে

function fillSelect(data) {
  alert(data);
  $.each(data, function(i, item) {
    alert(item.PageName);
  });
}

সম্পাদনা 2 এটি আমাকে কিছুটা বিভ্রান্ত করছে, ডক্স অনুসারে এটি আমার মতো কাজ করা উচিত, তবে তা হয় না। ফিজলারের মতে শিরোনামটি শো করে:

Content-Type: application/json; charset=utf-8

এবং JSON উপরে ঠিক সঠিক। এর থেকে যদি কিছু আলাদা হয় তবে আমি ক্রোম ব্যবহার করছি। আইই এবং এফএফ পরীক্ষা করবে ....

সম্পাদনা 3

get .get ব্যবহার করে উত্পাদন হয়

"[\r\n {\r\n \"Id\": 10041,\r\n \"PageName\": \"01234567890\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10001,\r\n \"PageName\": \"about\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10056,\r\n \"PageName\": \"fdgdfgdfg\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10052,\r\n \"PageName\": \"hjkhjk\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10059,\r\n \"PageName\": \"jjjjjjj\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10057,\r\n \"PageName\": \"qqqqq\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10054,\r\n \"PageName\": \"qwqw\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n }\r\n]"

এটা আমার জন্য কাজ করে. নিশ্চিত করুন যে প্রতিটি পদ্ধতিতে ডেটা সঠিকভাবে পাস হয়েছে।
কেজিআনাকাকিস

উত্তর:


303
var data = [ 
 {"Id": 10004, "PageName": "club"}, 
 {"Id": 10040, "PageName": "qaz"}, 
 {"Id": 10059, "PageName": "jjjjjjj"}
];

$.each(data, function(i, item) {
    alert(data[i].PageName);
});

$.each(data, function(i, item) {
    alert(item.PageName);
});

এই দুটি বিকল্প ভাল কাজ করে, যদি না থাকে আপনার মতো:

var data.result = [ 
 {"Id": 10004, "PageName": "club"}, 
 {"Id": 10040, "PageName": "qaz"}, 
 {"Id": 10059, "PageName": "jjjjjjj"}
];

$.each(data.result, function(i, item) {
    alert(data.result[i].PageName);
});

সম্পাদনা করুন:

এটি দিয়ে চেষ্টা করুন এবং ফলাফলটি বর্ণনা করে

$.get('/Cms/GetPages/123', function(data) {
  alert(data);
});

সম্পাদনা 3 এর জন্য:

এটি সমস্যার সংশোধন করে, তবে "ইভাল" ব্যবহার করার ধারণাটি নয়, আপনাকে দেখতে হবে যে '/ সেন্টিমিটার / গেটপেজ / 123' এ কেমন প্রতিক্রিয়া রয়েছে।

$.get('/Cms/GetPages/123', function(data) {
  $.each(eval(data.replace(/[\r\n]/, "")), function(i, item) {
   alert(item.PageName);
  });
});

1
দেখে মনে হচ্ছে আমার যুক্ত করা দরকারeval(data)
রিপ্পো

jQuery এর "httpData" ফাংশনে আপনি json ডেটার জন্য একটি উইন্ডো ["eval"] দেখতে পাবেন। আপনার ইওল ব্যবহার করার দরকার নেই। এই লাইন "। $ (get '/ সিএমএস / GetPages / 123'" আপনাকে দেখাতে হবে যে "তথ্য" -এ গ্রহণ করা হয়।
আন্দ্রেজ descalzo


কী $.getউত্পাদন করে তা জানাতে উত্তর (3 এডিট দেখুন) আপডেট করুন
রিপ্পো

আপনি কীভাবে "/ সেমি / গেটপেজ / 123" তে ডেটা ফিরিয়ে দিচ্ছেন?
andres descalzo

17

আপনি কি স্ট্রিং থেকে জাভাস্ক্রিপ্ট অবজেক্টে আপনার ডেটা রূপান্তর করেছেন?

আপনি এটির সাহায্যে data = eval('(' + string_data + ')'); বা যা নিরাপদ এটি করতে পারেন data = JSON.parse(string_data);তবে পরে কেবল এফএফ 3.5 এ কাজ করবে বা যদি আপনি json2.js অন্তর্ভুক্ত করেন

১.৪.১ থেকে jQuery এর জন্যও এটির কাজ রয়েছে $.parseJSON(),।

তবে প্রকৃতপক্ষে, $.getJSON()আপনাকে ইতিমধ্যে পার্সড জসন বস্তুটি দেওয়া উচিত, সুতরাং আপনার সমস্ত কিছু ভালভাবে পরীক্ষা করা উচিত, কোথাও কবর দেওয়া সামান্য ভুল রয়েছে, যেমন আপনি জসন-এর কিছু উদ্ধৃতি দিতে ভুলে গিয়েছিলেন, বা বন্ধুর একটি অনুপস্থিত রয়েছে।


দেখে মনে হচ্ছে আমার যুক্ত করা দরকারfillselect(eval(data));
রিপ্পো

বিটিডাব্লু কতটা সামঞ্জস্যপূর্ণ eval?
রিপ্পো

3
তা হওয়া উচিত data = eval('('+string_data+')');। এছাড়াও, jQuery এর আরও একটি ফাংশন রয়েছেdata = jQuery.parseJSON(string_data);
গ্রেগ

কিছু ঠিক আছে না। শুধুমাত্র eval(data)কাজ করে। দয়া করে আমার সম্পাদনা 2
রিপ্পো

2
আমি দেখেছি jQuery.parseJSON (স্ট্রিং_ডেটা) নির্দিষ্ট কিছু ক্ষেত্রে ব্যর্থ হয়েছে, যেখানে ডেটা = ইভাল ('(' + স্ট্রিং_ডেটা + '' ')) ঠিক ঠিক কাজ করে।
ডোমিনিক রাস

5

getJSON আপনার জন্য JSON এ ডেটা মূল্যায়ন করবে, যতক্ষণ না সঠিক কন্টেন্ট-টাইপ ব্যবহার করা হয়। নিশ্চিত করুন যে সার্ভারটি অ্যাপ্লিকেশন / জেসন হিসাবে ডেটা ফিরিয়ে দিচ্ছে।


1
ফিজলারের মতে সামগ্রীটির Content-Type: application/json; charset=utf-8
ধরণটি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.