jquery - কিভাবে জাভাস্ক্রিপ্ট/জাভাস্ক্রিপ্ট সঙ্গে JSON তথ্য পার্স?




ajax parsing (7)

আপনার সার্ভার পার্শ্ব স্ক্রিপ্টটি অনুমান করা হচ্ছে সঠিক Content-Type: application/json প্রতিক্রিয়া Content-Type: application/json আপনাকে jQuery এ ইঙ্গিত করার প্রয়োজন হবে যে এটি dataType: 'json' ব্যবহার করে JSON হয় dataType: 'json' প্যারামিটার।

তারপরে আপনি $.each() ফাংশনটি ডেটা দিয়ে লুপ করতে ব্যবহার করতে পারেন:

$.ajax({ 
    type: 'GET', 
    url: 'http://example/functions.php', 
    data: { get_param: 'value' }, 
    dataType: 'json',
    success: function (data) { 
        $.each(data, function(index, element) {
            $('body').append($('<div>', {
                text: element.name
            }));
        });
    }
});

অথবা $.getJSON পদ্ধতিটি ব্যবহার করুন:

$.getJSON('/functions.php', { get_param: 'value' }, function(data) {
    $.each(data, function(index, element) {
        $('body').append($('<div>', {
            text: element.name
        }));
    });
});

আমার কাছে একটি AJAX কল রয়েছে যা এই রকম কিছু JSON প্রদান করে:

$(document).ready(function () {
    $.ajax({ 
        type: 'GET', 
        url: 'http://example/functions.php', 
        data: { get_param: 'value' }, 
        success: function (data) { 
            var names = data
            $('#cand').html(data);
        }
    });
});

#cand div এর ভিতরে আমি পাবেন:

[ { "id" : "1", "name" : "test1" },
  { "id" : "2", "name" : "test2" },
  { "id" : "3", "name" : "test3" },
  { "id" : "4", "name" : "test4" },
  { "id" : "5", "name" : "test5" } ]

কিভাবে আমি এই তথ্য মাধ্যমে লুপ এবং একটি div প্রতিটি নাম রাখতে পারি?


আমি উপরের সমস্ত সমাধানগুলির সাথে একমত, কিন্তু এই সমস্যাটির মূল কারণ কী তা নির্দেশ করার জন্য, উপরের কোডের প্রধান ভূমিকা প্লেয়ার কোডটির এই লাইনটি:

dataType:'json'

যখন আপনি এই লাইন মিস করবেন (যা ঐচ্ছিক), সার্ভার থেকে ফেরত আসা তথ্যটিকে পূর্ণ দৈর্ঘ্যের স্ট্রিং (যা ডিফল্ট রিটার্ন টাইপ) হিসাবে বিবেচনা করা হয়। কোডের এই লাইন যোগ করা জেসন অবজেক্টে সম্ভাব্য জসন স্ট্রিং রূপান্তর করতে jQuery কে অবহিত করে।

জেসন ডাটা অবজেক্টের প্রত্যাশা করলে কোনও jQuery অ্যাকজ্যাক কল এই লাইনটি নির্দিষ্ট করতে হবে।


ঠিক আছে আমার একই সমস্যা ছিল এবং আমি [{"key":"value"}] থেকে [{"key":"value"}] [] মুছে ফেলার মাধ্যমে এটির মতো এটি ঠিক করেছি:

  1. আপনার পিএইচপি ফাইলের মধ্যে আপনি এই মত মুদ্রণ করুন
echo json_encode(array_shift($your_variable));
  1. আপনার সাফল্য ফাংশন এই কাজ
 success: function (data) {
    var result = $.parseJSON(data);
      ('.yourclass').append(result['your_key1']);
      ('.yourclass').append(result['your_key2']);
       ..
    }

এবং আপনি চান যদি আপনি এটি লুপ করতে পারেন


নিম্নলিখিত কোড চেষ্টা করে দেখুন, এটি আমার প্রকল্পে কাজ করে:

//start ajax request
$.ajax({
    url: "data.json",
    //force to handle it as text
    dataType: "text",
    success: function(data) {

        //data downloaded so we call parseJSON function 
        //and pass downloaded data
        var json = $.parseJSON(data);
        //now json variable contains data in json format
        //let's display a few items
        for (var i=0;i<json.length;++i)
        {
            $('#results').append('<div class="name">'+json[i].name+'</>');
        }
    }
});

dataType:'json' আপনার জন্য JSON বিশ্লেষণ করবে:

$.ajax({
  type: 'GET',
  url: 'http://example/functions.php',
  data: {get_param: 'value'},
  dataType: 'json',
  success: function (data) {
    var names = data
    $('#cand').html(data);
  }
});

অন্যথায় আপনি parseJSON ব্যবহার করতে পারেন:

var parsedJson = $.parseJSON(jsonToBeParsed);

তারপর আপনি নিম্নলিখিত পুনরাবৃত্তি করতে পারেন:

var j ='[{"id":"1","name":"test1"},{"id":"2","name":"test2"},{"id":"3","name":"test3"},{"id":"4","name":"test4"},{"id":"5","name":"test5"}]';

... $().each ব্যবহার করে $().each :

var json = $.parseJSON(j);
$(json).each(function (i, val) {
  $.each(val, function (k, v) {
    console.log(k + " : " + v);
  });
}); 

JSFiddle


var jsonP = "person" : [ { "id" : "1", "name" : "test1" },
  { "id" : "2", "name" : "test2" },
  { "id" : "3", "name" : "test3" },
  { "id" : "4", "name" : "test4" },
  { "id" : "5", "name" : "test5" } ];

var cand = document.getElementById("cand");
var json_arr = [];
$.each(jsonP.person,function(key,value){
    json_arr.push(key+' . '+value.name  + '<br>');
    cand.innerHTML = json_arr;
});

<div id="cand">
</div>

$.ajax({
  url: '//.xml',
  dataType: 'xml',
  success: onTrue,
  error: function (err) {
      console.error('Error: ', err);
  }
});

$('a').each(function () {
  $(this).click(function (e) {
      var l = e.target.text;
      //array.sort(sorteerOp(l));
      //functionToAdaptHtml();
  });
});






parsing