Uncaught TypeError: ไม่สามารถใช้ตัวดำเนินการ 'in' เพื่อค้นหา 'length' ใน


106

Uncaught TypeError: ไม่สามารถใช้ตัวดำเนินการ 'in' เพื่อค้นหา 'length' ใน "

นี่เป็นข้อผิดพลาดที่ฉันได้รับเมื่อพยายามทำ$.eachกับวัตถุ JSON นี้:

{"type":"Anuncio","textos":["Probando esto","$ 20150515"],"submit":"codParameters?___DDSESSIONID\u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest"}

ฉันได้พยายามทำเช่นเดียวกันกับ stringify แต่ฉันได้รับข้อผิดพลาดเดียวกัน:

{\"type\":\"Anuncio\",\"textos\":[\"Probando esto\",\"$ 20150515\"],\"submit\":\"codParameters?___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest\"}"

ถ้าฉันลบพารามิเตอร์ออก___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTestจากอ็อบเจ็กต์ $ .each ก็ใช้ได้ดี

เหตุใดจึงอาจเกิดขึ้นได้


4
โปรดจัดรูปแบบรหัสของคุณเป็นไปไม่ได้ที่จะอ่านแบบนี้ คุณสามารถใช้{}ปุ่มแก้ไขข้อความหรือเยื้องโค้ดทุกบรรทัด 4 ช่องว่าง
Sidd

คำตอบ:


247

ตัวinดำเนินการทำงานบนวัตถุเท่านั้น คุณกำลังใช้มันกับสตริง $.eachตรวจสอบให้แน่ใจค่าของคุณเป็นวัตถุก่อนที่คุณจะใช้ ในกรณีนี้คุณต้องแยกวิเคราะห์ JSON :

$.each(JSON.parse(myData), ...);

Felix ก่อน $ แต่ละฉันมี JSON.parse ข้อผิดพลาดจะปรากฏขึ้นเมื่อในการส่งคีย์มีค่า -> "codParameters? ___ DDSESSIONID \ u003d14EA4721A904D6DD71591156996E29F7% 3A% 2FMobilTest"
Iván Alberto Fontalvo Salgado

กรุณาโพสต์รหัสของคุณฉันไม่สามารถแก้ไขข้อผิดพลาดที่คุณอธิบายได้: jsfiddle.net/5asbeatq
Felix Kling

2
อย่าโพสต์คำตอบถ้าไม่ใช่ แก้ไขคำถามของคุณและใส่รหัสที่เกี่ยวข้องในคำถาม
Felix Kling

1
เสียเวลาไป 2 ชั่วโมงในที่สุดก็ใช้validator.showErrors(JSON.parse(data))งานได้ขอบคุณมากครับ ..
Mohammed Sufian

ฉันได้รับข้อผิดพลาดนี้สำหรับ $ .each ("ul li", function (k, v) {... });
Cr1xus

18

บางทีคุณอาจลืมเพิ่มพารามิเตอร์ dataType: 'json' ใน $ .ajax ของคุณ

$.ajax({
   type: "POST",
   dataType: "json",
   url: url,
   data: { get_member: id },
   success: function( response ) 
   { 
     //some action here
   },
   error: function( error )
   {
     alert( error );
   }
});

ที่ทำกับฉัน ขอบคุณ!
Luis Rock
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.