Parse json array usando javascript

Tengo un JSON ARRY

var students = {"apResults":[{"offid":"267","item_name":"","offer_name":"fsdfsf","stlongitude":"77.5945627","stlatitude":"12.9715987"}, {"offid":"265","item_name":"","offer_name":"vess offer shops","stlongitude":"","stlatitude":""}, {"offid":"264","item_name":"","offer_name":"vess ofer shop","stlongitude":"","stlatitude":""}, {"offid":"263","item_name":"","offer_name":"ofer frm vess","stlongitude":"77.5943760","stlatitude":"12.9716060"}, {"offid":"262","item_name":"","offer_name":"offer hungamma","stlongitude":"77.5943760","stlatitude":"12.9716060"}, {"offid":"261","item_name":"","offer_name":"offer hungamma","stlongitude":"77.5943760","stlatitude":"12.9716060"}, {"offid":"260","item_name":"","offer_name":"offer1","stlongitude":"77.5943760","stlatitude":"12.9716060"}, {"offid":"259","item_name":"","offer_name":"offer","stlongitude":"77.5943760","stlatitude":"12.9716060"}]} 

Cómo puedo analizar este json json.parse usando json.parse . He intentado este código

  for(i=0;i<students.apResults.length;i++) { var contact = JSON.parse(students.apResults); var offid = contact.offid; alert(offid) } 

Pero está dando un error JSON.parse: unexpected character Editado mi pregunta

Esa no es una cadena JSON, esa es una variable regular de JavaScript:

 for(i=0;i<students.Maths.length;i++) { var contact = students.Maths[i]; var fullname = contact.Name; alert(fullname) } 
 for(i=0;i<students.apResults.length;i++) { var contact = JSON.parse(students.apResults[i].offid); alert(contact) } 

JSON analiza cadenas, no objects / matrices.

¿Por qué hay que analizarlo cuando puede acceder a él como si fuera un students.Maths[i].Name

students no es una matriz JSON, es una matriz real. No es necesario analizar porque no es una cadena. Para que pueda acceder directamente a la información que necesita:

 for(i=0;i<students.Maths.length;i++) { var contact = students.Maths[i]; var fullname = contact.Name; alert(fullname) } 

No puede analizar los students porque no es un JSON. Es un object simple.

Sin embargo, esto funcionará:

 var students = JSON.stringify(students); // if you want to send data students = JSON.parse(students); // after receiving make a object from it //use like any object for(i=0;i<students.Maths.length;i++) { var contact = students.Maths[i]; var fullname = contact.Name; alert(fullname) } 

Por supuesto, no tiene sentido escribirlo de esa manera a less que envíe datos de los students a otro sitio o progtwig.

Editar: No necesita JSON en este código en absoluto. Pero si quieres probar JSON.parse () hazlo de esta manera:

 var students = { ... } // your data var students = JSON.stringify(students); // students is `object`, make it `string` students = JSON.parse(students); // now you can parse it, `students` is object again for(i=0;i<students.apResults.length;i++) { var contact = students.apResults; // no JSON var offid = contact.offid; alert(offid) } 

Eso debería funcionar.

Lo que tienes es un object javascript. Entonces, no necesitarás JSON.parse

 for(i=0;i<students.Maths.length;i++) { var contact = students.Maths[i]); var fullname = contact.Name; alert(fullname) } 

esto debería estar bien

La idea de JSON es para el intercambio de objects representados como una cadena estructurada (en pocas palabras). Lo que tienes ahí es simplemente un object. Es innecesario (e imposible) analizar y objetar que no es JSON en un object javascript; lo que tienes es el resultado de lo que esperarías de una cadena JSON analizada.