- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经在 Android 中使用 C 实现了 Jansson,并制作了一个函数,该函数从 json 计算值并在 C 中运行,我尝试在 NDK 中使用该代码和 JNI,它构建时没有错误,但是当我尝试安排代码时使用 JNI 它给我指针错误 warning: return from incompatible pointer type
。我读到我需要使用 jlong 作为指针,但我不知道它是如何工作的,这是我第一次使用它。
这是我的 C 代码(没有错误并编译)
char *doCalc (char *invoice_str) {
json_error_t error;
json_t *invoice = json_loads (invoice_str, JSON_DISABLE_EOF_CHECK, &error);
...
char *result = json_dumps (json_data, JSON_PRESERVE_ORDER);
return result;
}
C code Arranged to work with JNI(给我错误警告:从不兼容的指针类型返回,如果我正确的话是因为 jchar)
JNIEXPORT jchar JNICALL *Java_com_example_test_doCalc (JNIEnv* env, jobject obj,char const *invoice_str) {
json_error_t error;
json_t *invoice = json_loads (invoice_str, JSON_DISABLE_EOF_CHECK, &error);
...
char *result = json_dumps (json_data, JSON_PRESERVE_ORDER);
return result;
}
然后在我的 Activity 中我想运行 doCalc(charJ);
,charJ 中有 Json。然后会给我转储计算值。
此外,我可能完全看错了,感谢任何帮助。
最佳答案
尽量用jstring代替char*
JNIEXPORT jchar JNICALL * Java_com_example_test_doCalc(JNIEnv * env, jobject obj, jstring invoice_jstring) {
//convert invoice_jstring to char* link bellow
json_error_t error;
json_t * invoice = json_loads(invoice_str, JSON_DISABLE_EOF_CHECK, & error);
...
char * result = json_dumps(json_data, JSON_PRESERVE_ORDER);
return result;
}
要将 jstring 转换为 char*,您可以使用以下答案: JNI converting jstring to char *
关于android - 使用 JNI 将 Json char 传递给 C 以获取计算值的 Jansson 转储,指针问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24908480/
使用 Jansson 的 json_dumps 或 json_dumpf() 输出实数时,如何指定小数点后输出固定位数? 我尝试了 Jansson 的新 JSON_REAL_PRECISION 标志,
我正在 C 项目中使用 jansson 库。 我在理解如何使用 decref 时遇到一些问题。是否应该在每个新的 json_t 参数之后使用它?据我了解,jansson 将借用引用资料以使这变得更简单
我正在开发一个用 C 编写的应用程序,以使用 libcurl 与 API Web 服务器进行通信。我成功解析了一些 JSON 响应,但未能解析这个(最简单的)。 - 代码 void auth_pa
我正在尝试在 Xcode 7.3.1 上测试 Jansson。我按照说明安装了,然后用cMake,当它不起作用时,它也不起作用。我认为 Xcode 无法找到 Jansson 库。在搜索这个问题的大量建
我正在使用jansson应用程序的 JSON 库。我正在读API并遇到了这些函数:json_integer_value , json_real_value和 json_number_value . 第
我正在尝试构建 jansson使用预制的 C 库。 图书馆的设计者要求我们: ./配置 制作 进行安装 上述步骤生成构建所需的 jansson_config.h。 我想做的是: ./配置 premak
我有一个 json 文件。并且,文件已成功加载。但是,我想更改如下值并保存修改后的 json 文件。但是,该值根本没有改变和保存。我该怎么办? 来自/home/pi/desktop/test.json
我正在使用 C jansson 库 http://www.digip.org/jansson/ 使用起来相当简单https://jansson.readthedocs.org/en/2.7/tutor
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我想从 JSON 中提取字符串,该 JSON 的值前面没有键描述符,但这些值只是用“|”分隔。 这是我所拥有的输入类型的示例: {"data":["this|is|an|","example|than
我正在使用 janson 库将 json 正文作为 rest 请求发送,我注意到我是这样做的: json_t *json_body = json_object(); char sentString[1
我正在开发一个以前使用平面文件文本格式来存储其首选项的程序,但是我希望切换到使用库来卸载所有自定义代码。对json情有独钟,一直在看jansson。 虽然我运气不佳,但我所做的是首先检查我的 conf
在 function1 中,我需要获取在 function2 中(正确)设置的 jsonObj 的值,但我有一些我认为指针问题。我应该如何传递参数jsonObj? int function1(){
我在我的项目中使用 Jansson 2.7。我发现了导致构建失败的原因。 如果我尝试: tar -zxvf jansson-2.7.tar.gz cd jansson-2.7/ ./configure
我正在尝试交叉编译 Jansson从我的机器 (x86_64) 为 iOS (armv7)。我了解到,在 xcode 5 中,apple 删除了 llvm-gcc,因此无法找到 armv7-apple
我想从一个 JSON 文件中提取值,该文件在值前面没有键描述符,但值只是用冒号分隔。 这是我的输入类型的一个例子: {"out":[[0.2,15],[0.5,3.3],[0.1,46.8]],"in
所以我一直致力于用 C 编写一个程序,它可以访问各种加密货币网站的 API,例如 www.cryptsy.com,我弄清楚了 cURL 部分,并让程序将 JSON 数据吐出到一个 char*看起来像这
我正在关注下面的 jansson 教程。 https://github.com/akheron/jansson/blob/master/doc/tutorial.rst#id2 当我像教程一样编码时,
我是 C++ 的新手,不知道如何从字符串中剥离一些杂项数据,然后将其解析为 JSON。 我最终使用了我能找到的文档最多的 JSON 解析器 - jansson。看起来很棒,尽管我遇到了第一个障碍。 我
我已经在 Android 中使用 C 实现了 Jansson,并制作了一个函数,该函数从 json 计算值并在 C 中运行,我尝试在 NDK 中使用该代码和 JNI,它构建时没有错误,但是当我尝试安排
我是一名优秀的程序员,十分优秀!