2017-05-04 1 views
-1

나는 다음과 같은 JSON 파일이 있습니다입력 변수에 따라 JSON 구조를 만듭니다

{ 
    "outer_size":2, 
    "inner_size":{ 
     "length_one":2, 
     "length_two":1 
    } 
} 

내가 누구의 크기 outer_size, inner_size, length_onelength_two에 의해 결정되는 새로운 JSON 파일을 작성하려면이 정보를 사용합니다. 내가 생성 할 구조는 다음과 같은 형식

[ 
    { 
     "a":[ 
     { 
      "a_one":1 
     }, 
     { 
      "a_two":2 
     } 
     ] 
    }, 
    { 
     "b":[ 
     { 
      "b_one":1 
     } 
     ] 
    } 
] 

이 구조는 두 개의 "외부"변수 aouter_size=2 때문에 b이 포함되어 있습니다. b 하나의 "내부"변수 b_one 포함하면서

a 두 "내측"및 변수 a_onea_two를 포함한다. 이는 inner_size이 각각 2와 1이기 때문입니다. outer_size, inner_size, length_onelength_two을 부여 바탕으로

질문, 그 크기로 JSON 구조를 생성하는 가장 좋은 방법은 무엇입니까? 수/완료해야 클래스?

주의하십시오

  1. outer_size의 값은 항상 (위의 예 2) length_XX 스펙 (specifications)의 수와 동일해야합니다 다음과 같습니다. 3 인 경우 length_three도 지정해야합니다.
  2. 특정 값이 a_one, a_ two 등이 될 수 있습니다. 이제 나의 주요 관심사는 단순히 기본 구조를 만드는 것입니다.
  3. Nlohmann의 JSON 라이브러리를 사용하여 초기 JSON 파일을 읽었습니다.
+1

''outer_size ': 2'는''outer_size' '의 키 번호이므로 불필요하게 보입니다. : 2' ... – Jarod42

+0

@ Jarod42 고마워요. 'outer_size'도 변수가되기를 바랍니다. 그래서 3 인 경우에는 'length_three'도 지정해야합니다 – BillyJean

답변

0

JSON 라이브러리를 사용하지 않고이 코드를 사용하여 "수동으로"JSON 코드를 생성했습니다.

fputs("[\n",file); 
fputs("\t{\n",file); 
fputs("\t\t\"a\":[\n" ,file); 
fputs("\t\t  {\n",file); 
fprintf(file,\t\t\t\"a_one\": \"%s\",\n",functionReturningJSONValue()); 

당신이 물어 본 것과 같은 것이 인쇄됩니다. 나는 그것을 완전히하지 않았지만 그것이 어떻게 작동 하는지를 이해할 것이라고 확신합니다.
도움이 되었기를 바랍니다.

fprintf를 사용하여 특정 크기의 JSON 및 입력 값을 만들려면 여전히 루프 할 수 있습니다.

관련 문제