title: golang DeepEqual: when the type of value of interface map is array, the DeepEqual is invalidation
body: <pre><code>package main
  
  import (
      "encoding/json"
      "fmt"
      "reflect"
  )
  
  func main() {
      nodeArray := map[string]interface{}{
          "meta": map[string]interface{}{
              "category": "paragraph"}, "content": []string{"111"}}
      // content is number as 111 or array
  
      b, _ := json.Marshal(&amp;nodeArray)
      var nodeArrayTest map[string]interface{}
      json.Unmarshal(b, &amp;nodeArrayTest)
      if !reflect.DeepEqual(nodeArray, nodeArrayTest) {
          fmt.Println("!!!! odeArray and nodeArrayTest should be equal")
      } else {
          fmt.Println("odeArray and nodeArrayTest equal")
      }
  }
  </code></pre>
  
  <p>Why when the interface map has array(content is number as 111 or array), the return of DeepEqual is false? And when the content value is a string, a map, the DeepEqual is true.</p>