2013-08-27 9 views
1

그래서 httpebble 라이브러리와 함께 here 이상의 자갈 SDK를 따르려고합니다.터플에서 JSON 배열 구문 분석

{"0":["Oz Lotto","Powerball","TattsLotto","Super 66","Monday & Wednesday Lotto","The Pools"],"1":["17, 26, 38, 7, 36, 45, 9 (44) (41)","15, 37, 32, 6, 24, 10 (11)","37, 12, 15, 16, 42, 45 (6) (9)","1, 8, 5, 8, 8, 5","16, 40, 44, 8, 24, 15 (39) (3)","5, 17, 20, 22, 27, 31 (16)"]} 

main.c를 :

나중에 내 페블의 목록에 그들을 저장하기 위해 데이터를 추출 할 수 있도록하려는

DictionaryIterator* received 가정은 다음과 같은 JSON 페이로드를 포함 앱. 그래도 Tuple이 어떻게 작동하는지 파악하는 데 어려움이 있습니다.

이것은 내가 실제로 lotto_nameslotto_numbers 중에서 값을 추출하는 방법을 모르겠다는 것을 제외하고는 지금까지 내가 가지고있는 것입니다.

void http_success(int32_t request_id, int http_status, DictionaryIterator* received, void* context) { 
    if (request_id != HTTP_COOKIE) { 
     return; 
    } 

    Tuple *lotto_names = dict_find(received, 0); 
    Tuple *lotto_numbers = dict_find(received, 1); 
    for (int i = 0; i < 5; i++) { 
     const char* lotto_name = lotto_names[i]; // ? 
    } 
} 

나는 또한 Pebble SDK forum에서 질문을 통해 요청했습니다. 그러나 아무도 내 게시물에 응답하지 않았습니다. 어떤 도움을 주시면 감사하겠습니다.

+0

SDK를 살펴보면 JSON 툴처럼 보이지 않습니다. 데이터를 나타 내기 위해 사전에 숫자 키가 필요합니다. "0"과 "1"은 사전 키로 변환되고 값은 사전에 문자열로 저장됩니까? 아마도 JSON 라이브러리를 사용하는 것이 좋습니다. – ash

+0

@ash : 좋은 질문입니다. [httpebble] (https://github.com/Katharine/httpebble-watch)이라는 라이브러리를 사용하고 있습니다. – fuzz

+1

사전에 API에 표시되지 않지만 누락 될 수 있습니다. 다음은 JSON 참조를위한 훌륭한 사이트입니다 : http://json.org/. 여기 내가 사용했다고 생각하는 것들이 있습니다 : https://github.com/json-c/json-c/wiki. 과거에 사용하려고 시도한 일부 라이브러리는 인용 부호를 올바르게 처리하지 못했습니다. 희망이 도움이됩니다. – ash

답변

1

예에서 키 "0"은 중첩 양식 인 배열과 연결됩니다. httpebble documentation에서 설명했듯이, 당신이`httpebble '로 돌아 오는 사전에 어떤 중첩도 존재할 수 없다.

요청에 첨부 된 키/값 쌍은 플랫 JSON 사전으로 전송됩니다. 중첩 할 수 없습니다.

직접 값과 연결된 키를 보내려면 JSON 데이터를 다시 작성해야합니다.