[JavaScript] JSON in JavaScript

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Hanskopf, 13. November 2011 .

Schlagworte:
  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.
     
  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
     }
    };
     
  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....
     
  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.
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.