Changeset 19596


Ignore:
Timestamp:
01/31/12 19:02:39 (4 months ago)
Author:
sys
Message:

Ajout Json parser en java.

Location:
trunk/Jav_Commons
Files:
4 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Jav_Commons/src/eu/scenari/commons/syntax/json/JsonSerializer.java

    r18986 r19596  
    4141import java.io.IOException; 
    4242import java.util.Collection; 
     43import java.util.Map; 
    4344 
    4445/** 
     
    169170         *  
    170171         */ 
    171         public JsonSerializer(Appendable pappendable) { 
     172        public JsonSerializer() { 
    172173                this.fStackStatus = new SerialStatus[10]; 
    173                 this.fAppendable = pappendable; 
     174                this.fAppendable = new StringBuilder(); 
     175        } 
     176 
     177        /** 
     178         *  
     179         */ 
     180        public JsonSerializer(Appendable pAppendable) { 
     181                this.fStackStatus = new SerialStatus[10]; 
     182                this.fAppendable = pAppendable; 
    174183        } 
    175184 
     
    372381                } 
    373382                endArray(); 
     383                return this; 
     384        } 
     385 
     386        public JsonSerializer valObject(Map<?, ?> pObject) throws Exception { 
     387                startObject(); 
     388                for (Map.Entry<?, ?> vField : pObject.entrySet()) { 
     389                        key(vField.getKey().toString()); 
     390                        val(vField.getValue()); 
     391                } 
     392                endObject(); 
    374393                return this; 
    375394        } 
     
    397416                } else if (pObject instanceof Collection<?>) { 
    398417                        valArray((Collection) pObject); 
     418                } else if (pObject instanceof Map<?, ?>) { 
     419                        valObject((Map<?, ?>) pObject); 
    399420                } else { 
    400421                        valString(pObject); 
    401422                } 
    402423                return this; 
     424        } 
     425 
     426        public Appendable getAppendable() { 
     427                return fAppendable; 
    403428        } 
    404429 
     
    416441                        if (!fNeedComma) fNeedComma = true; 
    417442                        break; 
     443                case start: 
     444                        fNeedComma = false; 
     445                        break; 
    418446                case object: 
    419447                        throw new Exception("JsonAppendable can't write value before key object."); 
    420                 case start: 
    421                         throw new Exception("JsonAppendable can't write value just after start."); 
    422448                case closed: 
    423449                        throw new Exception("JsonAppendable closed"); 
  • trunk/Jav_Commons/test/eu/scenari/commons/syntax/json/JsonSerializerTest.java

    r18986 r19596  
    4343import org.junit.Test; 
    4444 
    45 import eu.scenari.commons.syntax.json.JsonSerializer; 
    46  
    4745/** 
    4846 *  
     
    5654                vJson.startObject().key("key1").valBoolean(true).key("'ê").valString("é\"è'").endObject(); 
    5755                System.out.println(vSb); 
    58                 Assert.assertEquals("{key1:true,\"\\'ê\":\"é\\\"è\\'\"}", vSb.toString()); 
     56                Assert.assertEquals("{\"key1\":true,\"'ê\":\"é\\\"è\'\"}", vSb.toString()); 
    5957        } 
    6058 
     
    8583 
    8684                System.out.println(vSb); 
    87                 Assert.assertEquals("{arr1:[{val1:1235.0,val2:12.0,val3:true},[null,null]]}", vSb.toString()); 
     85                Assert.assertEquals("{\"arr1\":[{\"val1\":1235,\"val2\":12,\"val3\":true},[null,null]]}", vSb.toString()); 
    8886        } 
    8987} 
Note: See TracChangeset for help on using the changeset viewer.