NetEase / pomelo-cn

The Chinese issues for pomelo.
38 stars 13 forks source link

关于C客户端返回的json的问题 #145

Open zpbaaa opened 11 years ago

zpbaaa commented 11 years ago

在c客户端中,在request的回调函数的申明如下 typedef void (pc_request_cb)(pc_request_t req, int status, json_t *resp); 其中第三个参数是从服务器返回的数据,放在json_t的结构中。 有这样一个现象:从这个结构中获取我的数据的时候每一个key对应的value只能对应一种数据类型。像{test:10}这样的一组数据我只能用json_integer_value()来获取10这个值,用json_real_value()就获取不到,用json_string_value()同样也获取不到。 但是这个数据我原来设置的时候他是double类型的。这对数据的解析造成很大的不便。

  我想问的是:有没有什么办法能够让我直接从返回的json数据中直接获取字符串的值,然后我再自己解析出想要的类型?
fantasyni commented 11 years ago

可以试试用 json_number_value 来获取

zpbaaa commented 11 years ago

json_number_value确实可以获取到整形和浮点型, 有没有什么方法可以用字符串获取数字类型的数据呢?

fantasyni commented 11 years ago

你可以先 json_object_get 然后 json_string_value