当前位置: 首页 > 面试题库 >

如何检查字符串是否为json格式

公冶浩慨
2023-03-14
问题内容

我想创建一个函数来接收输入字符串,该字符串可以是json格式的字符串,也可以只是一个字符串。例如,以下功能很简单。

func checkJson(input string){
   if ... input is in json ... {
      fmt.Println("it's json!")
   } else {
      fmt.Println("it's normal string!")
   }
}

问题答案:

我不清楚您是否仅需要了解“引号字符串”,还是需要了解json或两者之间的区别,因此,这向您展示了如何检测这两种情况,因此您可以非常具体。

我也在这里发布了交互式代码示例:http :
//play.golang.org/p/VmT0BVBJZ7

package main

import (
    "encoding/json"
    "fmt"
)

func isJSONString(s string) bool {
    var js string
    return json.Unmarshal([]byte(s), &js) == nil

}

func isJSON(s string) bool {
    var js map[string]interface{}
    return json.Unmarshal([]byte(s), &js) == nil

}

func main() {
    var tests = []string{
        `"Platypus"`,
        `Platypus`,
        `{"id":"1"}`,
    }

    for _, t := range tests {
        fmt.Printf("isJSONString(%s) = %v\n", t, isJSONString(t))
        fmt.Printf("isJSON(%s) = %v\n\n", t, isJSON(t))
    }

}

将输出以下内容:

isJSONString("Platypus") = true
isJSON("Platypus") = false

isJSONString(Platypus) = false
isJSON(Platypus) = false

isJSONString({"id":"1"}) = false
isJSON({"id":"1"}) = true


 类似资料:
  • 问题内容: 如何检查给定的字符串是否采用以空格/换行符分隔的多个json字符串形式? 例如, 给定的:(3个json与空格连接) return :,因为item( 和)中的每个都是有效的json。 在Go中,我可以编写一个O(N ^ 2)函数,例如: 但这不适用于大量输入。 问题答案: 有两种选择。从编码的角度来看,最简单的方法就是正常解码JSON字符串。您可以通过解码为空结构来提高效率: (游乐

  • 我用Json创建了一个数据库。我解析了这个数据库,并让代码遍历一个包含几个Json对象的Json数组。最后,我也在遍历Json对象中的值。我的问题是我需要检查迭代器所在的值是字符串还是数组。 谷歌似乎只有检查字符串中是否有数字或该问题的其他变体之类的事情。 所以,这些问题似乎对我想要的东西没有多大帮助。有一个案例与我的非常相似,但它处理的是原始数据类型,所以我处理字符串的案例不起作用。(这里是另一

  • 我的要求是,在web表单上,如果我选择了一些字符串,单击一个按钮,我应该能够知道我选择的字符串是否使用了有效的HTML语法 假设我写了上面的代码,它应该提醒我错误,但它提醒我正确

  • 问题内容: Python是否有类似空字符串变量的内容,你可以在其中执行以下操作: 无论如何,检查空字符串值的最优雅方法是什么?我”“每次都很难检查空字符串,因此很难进行编码。 问题答案: 空字符串是“虚假的”,这意味着它们在布尔上下文中被认为是错误的,因此你可以执行以下操作: 如果你知道变量是字符串,则这是首选方式。如果你的变量也可以是其他类型,则应使用。有关在布尔上下文中为假的其他值,请参见“

  • 问题内容: 我有像 如何检查字符串是否为日期? 使用正则表达式检查String是否为数字 问题答案: 其他人也是正确的 这是你的答案

  • 问题内容: 我有一个isNotEmpty函数,如果字符串不为空,则返回true;如果字符串为空,则返回false。我发现如果我通过它传递一个空字符串,它将无法正常工作。 使用isNotEmpty验证字符串: 如果该字符串为空,则其他字符串将不会执行,我不明白为什么,请有人对此有所帮助。 问题答案: 实际上是简单的问题。更改: 至 可以说,您可能还想将其更改为: 因为如果您传递的是数字0以及其他一些