JSON 의 형식 과 사용 방법 및 키 이름 이 비정 상 변수 인 읽 기 방법

6779 단어 javascrip
JSON (JavaScript Object Notation) 은 경량급 데이터 교환 형식 으로 언어 에 완전히 독립 된 텍스트 형식 으로 이상 적 인 데이터 교환 형식 입 니 다.또한 JSON 은 JavaScript 원생 형식 으로 JavaScript 에서 JSON 데 이 터 를 처리 할 때 특별한 API 나 공구 꾸러미 가 필요 하지 않 고 프로 그래 밍 에서 통용 되 는 데이터 형식 으로 우리 에 게 큰 편 의 를 가 져 다 준 다 는 것 을 의미한다.
JSON 에는 대상 과 배열 두 가지 구조 가 있다.
object 형식, "(곶" 으로 인 한 키 값 쌍:
var person= {"name":"jack"}

array 형식, "[]" 로 인 한 object:
var person = [{name:"trump", age:"71"},{name:"hillary", age:"70"}];

두 가지 수치 추출 방법 이 다른 대상 일 때 직접 "타 점 사용", 예 를 들 어 person. name.person [1]. age 와 같은 배열 을 위 한 색인 에 따라 사용 합 니 다.
JSON 대상 과 JSON 문자열: 데이터 전송 과정 에서 JSON 은 텍스트 형식, 즉 문자열 형식 으로 전달 되 지만 자 바스 크 립 트 는 JSON 대상 을 조작 하기 때문에 실제 적 으로 JSON 대상 과 JSON 문자열 간 의 상호 전환 을 자주 볼 수 있 습 니 다.ex:
    // JSON   :
    var jsonStr = '{ "name": "wade", "sex": "male" }';

    // JSON  :
    var jsonObj = { "name": "Kristein", "sex": "female" };

쉽게 말 하면 제 이 슨 문자열 은 제 이 슨 형식의 파일 을 따옴표 로 문자열 형식 으로 표시 하 는 것 이다.
// JSON      JSON  
var obj = eval('(' + str + ')');
var obj = str.parseJSON();
var obj = JSON.parse(str); 

메모: 만약 에 obj 자체 가 하나의 대상 이 라면 eval () 변환 을 사용 한 후에 도 json 대상 이지 만 parseJSON 을 사용 하면 이상 을 알 릴 수 있 지만 일반적으로 eval () 을 사용 하 는 것 을 추천 하지 않 습 니 다. 안전 하지 않 기 때 문 입 니 다.예 를 들 어:
var jsonStr = '{name:"jack", action:"alert('unsafe')"};'

이상 json 문자열 은 eval () 을 통 해 변환 되면 action 을 가 져 오 면 'unsafe' 가 바로 팝 업 됩 니 다.
 //JSON        
 var jsonStr = obj.toJSONString(); 
 var jsonStr = JSON.stringfy(obj);

ps: 상기 방법 에서 eval () 은 자바 script 이 자체 적 으로 가 져 온 것 이 고 다른 것 은 모두 json. js 가방 에서 나 온 것 입 니 다.새 버 전의 제 이 슨 은 API 를 수정 하여 JSON. stringfy () 와 JSON. parse () 두 가지 변환 방법 을 js 의 내장 대상 에 추가 하면 직접 사용 할 수 있다.
마지막 으로 보충: json 형식의 파일 을 읽 어야 할 때 숫자 나 비정 상 변 수 를 입력 할 때 어떻게 조작 합 니까?먼저 작은 예 를 붙 여 제 이 슨 의 모든 데 이 터 를 가 져 옵 니 다.data.vue
export default {
      data:function(){
        return {
            "2016Q1": [
              {channel: '  ', vv: '17,980', dayrate: '+292%', weekrate: '+5%'},
              {channel: '  ', vv: '48,133', dayrate: '+48%', weekrate: '+21%'},
              {channel: '  ', vv: '189,342', dayrate: '+39%', weekrate: '+0%'},
              {channel: '  ', vv: '106,430', dayrate: '+35%', weekrate: '+12%'}
            ],
            "2016Q2": [
              {channel: '  ', vv: '43,910', dayrate: '+414%', weekrate: '+77%'},
              {channel: '  ', vv: '34,173', dayrate: '+28%', weekrate: '+11%'},
              {channel: '  ', vv: '89,562', dayrate: '+59%', weekrate: '+29%'},
              {channel: '  ', vv: '96,189', dayrate: '+37%', weekrate: '+0%'}
            ]
            }
      }
    }

app.vue
import listData from './components/data'

export default {
  name: 'app',
  data(){
    return{
         lists: listData.data()["2016Q1"]               //array
    }
  }

그러면 json 파일 의 키 이름 이 숫자 일 때 어떻게 값 을 얻 습 니까? 예 를 들 어:
var testJson = {'9527':'soldiers'}; 
alert(testJson.9527); 

이렇게 쓰 는 것 은 무효 이 며, 어떤 것 도 튀 어 나 오지 않 을 것 이다.그럼 어떻게 해결 할 까요?숫자 키 이름 이나 비정 상 변수 문자 (예 를 들 어 빈 칸 이 있 음) 에 대해 서 는 obj [key] 방식 을 사용 해 야 합 니 다.
위로 돌아 가면 일반적인 경우 'this. lists = listdata. data (). 2016 Q1' 을 사용 하여 데이터 내용 을 읽 을 수 있 지만 여기 서 는 유효 하지 않 습 니 다.사용 해 야 합 니 다:
this.lists = listData.data()["2016Q1"];

ps: 총 결 이 급 하 므 로 소홀 함 을 피하 기 어렵 습 니 다. 잘못 이나 누락 이 있 으 면 지적 해 주 십시오.

좋은 웹페이지 즐겨찾기