百度中搜索:
java 用 jni 调用fastjson
得到下面的代码:
#include <jni.h>
#include <stdio.h>
#include "com_example_FastjsonJNI.h"
#include "fastjson/fastjson.h"
JNIEXPORT jstring JNICALL Java_com_example_FastjsonJNI_serialize
(JNIEnv *env, jobject obj, jobject object) {
char *json = JSON_ToJsonString(object);
return (*env)->NewStringUTF(env, json);
}
JNIEXPORT jobject JNICALL Java_com_example_FastjsonJNI_deserialize
(JNIEnv *env, jobject obj, jstring json) {
const char *jsonStr = (*env)->GetStringUTFChars(env, json, 0);
jobject result = JSON_ToObject(jsonStr);
(*env)->ReleaseStringUTFChars(env, json, jsonStr);
return result;
}
编译命令为:
gcc -shared -o libfastjson_jni.so -fPIC fastjson_jni.c -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux -Lpath_to_fastjson_lib -lfastjson
可是提示找不到fastjson库, 和fastjson/fastjson.h头文件,据我所知, fastjson只有java版本的jar: fastjson.jar, 不知道怎么弄