在 Kotlin android 中从 json 字符串中删除换行符 \n

Pre*_*aur 6 string android json newline kotlin

我试图从 json 字符串中删除 \n 字符,因为它不允许我在文本视图上设置文本。我尝试了不同的示例,例如如何使用 Kotlin 和 jackson ObjectMapper 从 json 中删除属性,但这对我没有帮助。我想使用 Gson 将 json 中的值分配给文本视图,但由于 \n 字符,它变为空。

我也尝试用 .toRegex 方法替换,但它没有帮助我。

这是我的主要活动代码

class MainActivity : AppCompatActivity() {

private var mGitHubApiCall: GithubApiCall? = null
var result: String?= null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    mGitHubApiCall = GitHubCVService.gitHubService
    mGitHubApiCall!!.getData().enqueue(object : Callback<GithubResp> {
        override fun onResponse(call: Call<GithubResp>, response: Response<GithubResp>) {
            if (response.isSuccessful) {
                val msg = response.body()?.files?.cvDummyJson?.content
                result= msg+""
                Log.e("data", result)                   
                val data= Gson().fromJson(result, Data::class.java)
                user_name.text= data.name
                summary_desc.text= data.summary
            } else {
                Log.e("data", "error")
            }
        }

        override fun onFailure(call: Call<GithubResp>, t: Throwable) {
            Log.e("data", "Fail to call")
        }

    })


}
Run Code Online (Sandbox Code Playgroud)

我的 json 如下

{\n
   "data":{\n
  "name":"Maria",\n
  "summary":"Likable and dedicated IT consultant with over 5 years of experience in a fast-paced fin-tech company. Eager to offer superb analytical and computer skills to help ABC Inc grow its client base. In previous roles recognized for top company-wide quality satisfaction rating.",\n
  "skills":[\n
     {\n
        "type":"Design Languages",\n
        "languages":[\n
           "HTML",\n
           "XML",\n
           "CSS"\n
        ]\n
     },\n
     {\n
        "type":"Language",\n
        "languages":[\n
           "Java",\n
           "C#",\n
           "C++",\n
           "Kotlin"\n
        ]\n
     },\n
     {\n
        "type":"Scripting Language",\n
        "languages":[\n
           "Javascript"\n
        ]\n
     },\n
     {
        "type":"Server Language",\n
        "languages":[\n
           "Php"\n
        ]\n
     },\n
     {\n
        "type":"Operating System",\n
        "languages":[\n
           "Windows",\n
           "Mac",\n
           "Android"\n
        ]\n
     },\n
     {\n
        "type":"Database",\n
        "languages":[\n
           "Sqlite",\n
           "SQL",\n
           "MySQL"\n
        ]\n
     },\n
     {\n
        "type":"Frameworks", \n
        "languages":[\n
           "Netbeans",\n
           "Eclipse",\n
           "ADT-Bundle"\n
        ]\n
     }\n
  ],\n
  "education_bg":[\n
     {\n
        "position":"Post-Graduate in IBM",\n
        "Major":"International Business",\n
        "from":"2018",\n
        "to":"2019",\n
        "institute_name":"Douglas College"\n
     },\n
     {\n
        "position":"Post-Graduate in ICT",\n
        "Major":"Information Technology",\n
        "from":"2017",\n
        "to":"2018",\n
        "institute_name":"Douglas College"\n
     },\n
     {\n
        "position":"Bachelors in CSE",\n
        "Major":"Computer Science",\n
        "from":"2010",\n
        "to":"2014",\n
        "institute_name":"Douglas College"\n
     }\n
  ]\n
   }\n
}
Run Code Online (Sandbox Code Playgroud)

我想将此 json 字符串中的值设置到我的文本视图,该文本视图为空且不显示任何内容。

提前致谢

小智 7

我认为你的 JSON 第一次是字符串,你想使用 Jackson 转换为 JSON。因此,首先您可以将字符串“\n”替换为“”。然后将 JSON 字符串解析为 JSON 对象。检查这个简单的示例并在您的情况下尝试一下。希望它能帮助你。

fun main(){
    val myobj="{\nname: \"John\",\n age: 31,\n city: \"New York\"}"
    val result=myobj.replace("\n","")
    print(result)
}
Run Code Online (Sandbox Code Playgroud)