Dave Gamble による cJSON を使用していますが、次の問題があります。cJSON 構造体内の値を変更してから cJSON_Print コマンドを使用すると、更新された値が取得されず、代わりにデフォルト値が取得されます。
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
void main(){
cJSON *test = cJSON_Parse("{\"type\": \"rect\", \n\"width\": 1920, \n\"height\": 1080, \n\"interlace\": false,\"frame rate\": 24\n}");
printf("cJSONPrint: %s\n cJSONvalueint: %d\n",cJSON_Print(test), cJSON_GetObjectItem(test,"frame rate")->valueint);
cJSON_GetObjectItem(test,"frame rate")->valueint=15;
printf("cJSONPrint: %s\n cJSONvalueint: %d\n",cJSON_Print(test), cJSON_GetObjectItem(test,"frame rate")->valueint);
}
これは私が小さなテストに使用したコードで、これらの結果が得られます。
cJSONPrint: {
"type": "rect",
"width": 1920,
"height": 1080,
"interlace": false,
"frame rate": 24
}
cJSONvalueint: 24
cJSONPrint: {
"type": "rect",
"width": 1920,
"height": 1080,
"interlace": false,
"frame rate": 24
}
cJSONvalueint: 15
私が間違っていることと、 cJSON_Print コマンドで正しい値を取得する方法を知っている人はいますか?