【问题标题】:Can I get JSONObject from Default value of Firebase Remote Config我可以从 Firebase 远程配置的默认值中获取 JSONObject
【发布时间】:2017-11-09 10:10:32
【问题描述】:

我需要从Firebase 中远程config 的默认值中获取JSONObject。通过FirebaseRemoteConfig.getString(),它被转换为字符串,但不在JSONObject中,说

org.json.JSONException: Unterminated object at character xx

我在下面附上了远程config 的默认值:

  <entry>
    <key>welcome_message</key>
    <value>{"version" :1,"type":"category","name":"CATEGORY"}
    </value>
  </entry>

我现在附上我的 Java 代码:

  String welcomeMessage = mFirebaseRemoteConfig.getString(WELCOME_MESSAGE_KEY);

  JSONObject categoryListInJson = new JSONObject(welcomeMessage);

提前感谢您的回答。

【问题讨论】:

  • Print String wc ,是不是格式正确的json?
  • 不,不是@semako
  • 可以贴一下welcomeMessage的内容吗?并且还在“org.json.JSONException:字符 xx 处的未终止对象”中,xx 的值是多少? @vipul-k-patil
  • 我已经在问题中做到了这一点。字符串为:{version:1,type:category,name:BASE CATEGORY},“xx”的值为36,即空格符-“”
  • 看起来xml标签值有json。

标签: java android json firebase firebase-remote-config


【解决方案1】:

这是 Android Studio 3.0 或更高版本的错误。

【讨论】:

【解决方案2】:

我看到了一个错误,当从 default.xml 中选择值时,字符串中的引号会被剥离

您可以尝试以下两种方法中的任何一种吗?

  1. 启用开发者模式并将缓存过期设置为 0。然后在 firebase 远程配置控制台上设置 JSON。然后在设备上进行提取。这是因为错误不是从控制台获取 JSON 时出现的,它似乎只在从默认 xml 中提取值时出现。
  2. 不要在 default.xml JSON 中使用字符串,而是使用数字 - 看看是否可行?

谢谢

【讨论】:

    【解决方案3】:

    这个问题有多种解决方案

    1. 使用 firebaseConfig.setDefaults(Map); 设置默认配置。

    2. 在 .xml 文件中的字符串中,在双引号 (") 之前使用反斜杠 ()。

    3.替换

    classpath 'com.android.tools.build:gradle:3.0.1' with
    classpath 'com.android.tools.build:gradle:2.3.3'
    and 
    google() with
    maven { url 'https://maven.google.com' }
    

    4.在gradle.properties中添加android.enableAapt2 = false

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多