#1 13. November 2011 JSON in JavaScript Hi, wie ist das mit JSON Objekten in JavaScript....kann man damit ohen zusätzliche .js importieren zu müssen damit arbeiten ? Die eval() Funktion angwendet auf einen JSON String funktioniert bei mir bestens....und auch so simple Dine die ObjektName.property[Index] usw... Aber was ist mir all den Hilfsfunktionen die man sonst bei JSON Objekten hat ? .exists(String) .getIndex(int) und all die anderen denkbaren Funktionen ? Existieren solche Funktionen ? Wo finde ich eine Übersicht ? Finde dazu nichts :angry: Habe zuvon JSON Objekt in JSP benutzt (Library Simple-JSON) und hier gab es ne ganze Reihe nützlicher Funktionen.... Mein Ziel ist es ob ein Objekt in einem bestimmten Schlüssel einen Wert hat...und dessen Index dann zu bekommen. + Multi-Zitat Zitieren
#2 13. November 2011 AW: JSON in JavaScript JSON = JavaScript Object Notation d.h. JSON ist eine "kurzform" (bzw. eine alternative notierung) für javascript-objekte. JSON gehört zum sprachumfang von javascript und benötigt keine externen libs. in javascript gibt es keine JSON-objekte. es macht keinerlei unterschied ob du ein objekt per JSON erstellst oder auf dem "herkömmlichen" wege. zum thema eval: wenn du JSON per eval übersetzt, kann man unerwünschten code einschleusen. zudem solle eval generell vermieden werden. warum? darum. nutz in zukunft bitte JSON.parse() diese funktion ist nicht nur sicher, sondern auch schneller und hält sich an die spezifikation. Code: var json = '{ "foo": "bar" }'; var obj = JSON.parse(json); alert(obj.foo); // bar Code: var obj = { "foo": "bar" }; var arr = [ "hallo", "welt" ]; entspricht 1 zu 1: Code: var obj = new Object(); obj.foo = "bar"; var arr = new Array(); arr[0] = "hallo"; arr[1] = "welt"; isset Code: var obj = { "foo": "bar" }; if (typeof obj.foo !== "undefined") { /* foo exisitiert */ } getIndex Code: var obj = { "foo": "bar" }; alert(obj.foo); warum sollte es in javascript irgendwelche "funktionen" dazu geben, wenn es nativ übersetzt wird? java != javascript java hat 0,0 mit javascript zu tun. lies dir am besten mal einsteiger tutorials bez. javascript durch: SELFHTML: JavaScript/DOM hier ein beispiel (weil ichs grad offen hab) Spoiler Code: // --------------------------------------------- // tabview XUP.Tabview = function Tabview(node) { this.constructor = Tabview; // --- this.node = $(node).identify(); this.init(); }; XUP.Tabview.prototype = { // erstellt ein objekt current: "", // erstellt eine eigenschaft "current" enabled: true, itemids: null, init: function init() // nur in javascript möglich { // jadajadajada } }; + Multi-Zitat Zitieren
#3 13. November 2011 AW: JSON in JavaScript Hm...angenommen ich habe Code: var obj = { "foo": ["bar","barx","bary"] }; alert(obj.foo); Wie finde ich dann den Index von beispielsweise "barx" heraus ? Also an wievielter stelle "barx" im Array ["bar","barx","bary"] steht ? Oder ob es im Array überhaupt vorkommt ? Das muss doch effizient irgendwie machbar sein.... + Multi-Zitat Zitieren
#4 13. November 2011 AW: JSON in JavaScript bei arrays per "indexOf" [g]mdn Array indexOf[/g] seit: javascript 1.6 Code: alert(["foo", "bar", "baz"].indexOf("bar")); // 1 bei objekten gibts keinen "index". Code: var obj = {}; obj.foo = "foo"; obj.bar = "bar 1234"; obj.baz = "baz"; // liefert alle definierten keys (javascript 1.8.6) var keys = Object.keys(obj); for (var i = 0, l = keys.length; i < l; ++i) { if (obj[keys[i]] === "bar 1234") { alert(keys[i]); break; } } // bar sollte es diese funktionen nicht geben, weil du mit einem veralteten browser unterwegs bist, schau im mozilla-developer-network (MDN) nach und such dir die polyfiller raus. MDN solltest du sowieso in deine bookmarks aufnehmen, denn das ist DIE referenz für javascript überhaupt. + Multi-Zitat Zitieren