JS jsonの読み出し方法

4275 ワード

jsでJSONを読み取る方法
jsがJSONを読み込む方法私が触れたのは2つあります.方法1:関数構造定義法がvar strJSON=「{name:'json name'}」//得られたJSOnvar obj=new Function("return"+strJSON);//変換後のJSONオブジェクトalert(obj.name);//json name
方法2:jsで有名なeval関数var strJSON=「{name:'json name'}」;//得られたJSOnvar obj=eval("("+strJSOn+");//変換後のJSONオブジェクトalert(obj.name);//json name
2つ目の方法は、オブジェクト式{'name':'json name'}を「()」で拡張する必要があります.そうしないとvar strJSON=「{name:'json name'}」;var obj = eval(strJSON);alert(obj.constructor);//Stringコンストラクション関数alert(obj.name);//undefine匿名オブジェクトを生成するには、オブジェクト式をevalに拡張して実行する必要があります.
jackson jsonとJAVAオブジェクト間の変換
package com.javamail.test.json;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import com.javamail.test.json.vo.UserVO;
public class JsonTest {
    public static List<UserVO> createUser(){
        List<UserVO> list = new ArrayList<UserVO>();
        UserVO u = new UserVO(1,"11",1);
        UserVO u1 = new UserVO(2,"22",1);
        UserVO u2 = new UserVO(3,"11",1);
        UserVO u3 = new UserVO(4,"11",1);
        UserVO u4 = new UserVO(5,"11",1);
        UserVO u5 = new UserVO(6,"11",1);
        UserVO u6 = new UserVO(7,"11",1);
        UserVO u7 = new UserVO(8,"11",1);
        UserVO u8 = new UserVO(9,"11",1);
        UserVO u9 = new UserVO(10,"11",1);
        UserVO u10 = new UserVO(11,"11",1);
        list.add(u);
        list.add(u2);
        list.add(u3);
        list.add(u4);
        list.add(u5);
        list.add(u6);
        list.add(u7);
        list.add(u8);
        list.add(u9);
        list.add(u10);
        return list;
    }
    
    public static void main(String[] args) {
        // list  json
        List<UserVO> list = createUser();
        ObjectMapper mapper = new ObjectMapper();
        Writer strWriter = new StringWriter();
        try {
        mapper.writeValue(strWriter, list);
        } catch (JsonGenerationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // json        
        String json2 = "[{\"age\":1,\"name\":\"11\",\"id\":1},{\"age\":1,\"name\":\"11\",\"id\":3},{\"age\":1,\"name\":\"11\",\"id\":4}]";
        System.out.println(json2);
        try {
            List<UserVO> uList= mapper.readValue(json2, new TypeReference<List<UserVO>>() {});  
            for (UserVO userVO:uList) {
                System.out.print(userVO.getId()+" ");
            }
        } catch (JsonParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //json      JAVA  
        String json3 = "{\"age\":1,\"name\":\"11\",\"id\":1}";
        UserVO userVo;
        try {
            userVo = mapper.readValue(json3,UserVO.class);
            System.out.println(userVo.getAge());
        } catch (JsonParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}