Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中重新字符串化字符串_Java_Android_Json_Kotlin_Stringify - Fatal编程技术网

Java 在Android中重新字符串化字符串

Java 在Android中重新字符串化字符串,java,android,json,kotlin,stringify,Java,Android,Json,Kotlin,Stringify,我有一个字符串,我想在Kotlin(Android)中对其进行字符串化,但似乎org.json.*不支持获取字符串并重新对其进行字符串化,相反,它总是首先尝试对其进行解析 val str=“test=\“123” val stringified=JSONObject(str).toString()//JSONException:无法将java.lang.String类型的值a转换为'JSONObject'` 此功能的用例是以安全的方式将数据传递给Webview中的JS val json=“te

我有一个字符串,我想在Kotlin(Android)中对其进行字符串化,但似乎
org.json.*
不支持获取字符串并重新对其进行字符串化,相反,它总是首先尝试对其进行解析

val str=“test=\“123”
val stringified=JSONObject(str).toString()//JSONException:无法将java.lang.String类型的值a转换为'JSONObject'`
此功能的用例是以安全的方式将数据传递给Webview中的JS

val json=“test=\“123”
evaluateJavascript(“window.onData(${json})”)
//在JS端,它将如下所示:window.onData(test=“123”)
//这既无效又不安全,因为它为原始JS注入打开了大门
任何手动操作的尝试都将导致不安全且可能无效的JS字符串
不应使用此示例:
val-unsecurejson=“${str.replace(“\\”,“\\\\”).replace(“\”,“\\\”).replace(“'”,“\\”)”)

期望的行为:

val json=jsonstringgifysting(“test=\“123\”)
evaluateJavascript(“window.onData(${json})”)
//呈现的JS:window.onData(“test=\“123\”)

Android中有没有一种简单的字符串化方法?

最终使用了
JSONArray
类,并删除了数组包装以欺骗类将普通字符串字符串化

funJSonStringGifyString(str:String):String{
val jsonStr=JSONArray().put(str).toString()
返回jsonStr.substring(1,jsonStr.length-1)//删除第一个和最后一个字符
}
val serializedData=jsonStringifyString(“test=\“123\”);
evaluateJavascript(“window.onData(${serializedData})”)
//呈现的JS:window.onData(“test=\“123\”)