当前位置: 首页 > 知识库问答 >
问题:

如何在Javascript中快速解析此类对象?

曾泳
2023-03-14

我正在开发一个项目为Android和使用钛工作室3.2.0和钛SDK3.2.0. GA。

我使用的是Appcelerator城市飞艇模块,我可以毫无问题地连接,主要问题是我从城市飞艇接收到的有效载荷如下所示:

{prop1={"key1":"val1","key2":"val2","key3":"val3"}}

这是一个字符串,而不是像iOS中那样的对象。

额外的发送通过卷曲像这样:

curl -X POST -u "appkey:secret" \
   -H "Content-Type: application/json" \
   -H "Accept: application/vnd.urbanairship+json; version=3;" \
   --data '{"audience": {"alias": "foo"},"notification": {"alert":"hello","android": {"extra": {"prop1": "{\"key1\":\"val1\",\"key2\":\"val2\",\"key3\":\"val3\"}"}}},"device_types": ["android"]}' \
   https://go.urbanairship.com/api/push/

那是一个有效的JSON对象吗?由于=符号,我无法使用JSON. parse解析它,我可以替换它,但如果我要发送包含多个对象的额外内容,我想知道是否有一种方法可以快速解析这种对象。

先说清楚,这是我要发的:

{“观众”:{“别名”:“foo”},“通知”:{“警报”:“你好”,“Android”:{“额外”:{“prop1”:“{”key1\:“val1\”,“key2\:“val2\”,“key3\”:“val3\”}},“设备类型”:[“Android”]

粗体是我通过城市飞艇发送的有效载荷。我在我的应用程序上收到的内容如下:

{prop1={key1:“val1”,“key2:“val2”,“key3:“val3”}

如果我要发送这样的信息:

{“观众”:{“别名”:“foo”},“通知”:{“警报”:“你好”,“Android”:{“额外”:{“prop1”:“{”key1\:“val1\”,“key2\:“val2\”,“key3\:“val3\”,“prop2:“{”key4\:“val4\,“key5\:“val5\”,“key6\:“val6\”,。。。,“propN”:“{\“keyX\”:“valX\”,“keyY\”:“valY\”,“keyZ\”:“valZ\”}}}}”,设备类型:[“android”]}

我可能会收到一个字符串,看起来像:

{prop1={key1:“val1”,“key2:“val2”,“key3:“val3”},prop2={{key4:“val4”,“key5:“val5”,“key6:“val6”},。。。,propN={{“keyX”:“valX”,“keyY”:“valY”,“keyZ”:“valZ”}

我想知道是否有一种快速的方法可以将看起来像这样的字符串转换为JSON对象。我知道这个字符串不是一个有效的JSON对象,但是如果城市飞艇正在发送看起来像这样的东西,那么应该有一种方法来处理看起来像这样的对象。

共有1个答案

田翰林
2023-03-14

谜团解开了。

我们收到的数据并不像我们一开始想象的那么奇怪。这是Android中传递Intents的附加组件的通常结构。由于钛没有提供解析这些数据的方法,我们不得不手动替换麻烦的字符并将其构建为正常的JSON对象。

 类似资料:
  • 问题内容: 我有一个JSON文件,想解析和使用表视图中的对象列表。任何人都可以共享代码以快速解析JSON文件。 问题答案: 再简单不过了: 话虽如此,我强烈建议您使用 Swift 4中引入的Codable API 。

  • 问题内容: 我有一个Java服务器应用程序,可以下载CSV文件并进行解析。解析可能需要5到45分钟,并且每小时都要进行一次。此方法是应用程序的瓶颈,因此不是过早的优化。到目前为止的代码: 是否有现有的库可以帮助我加快速度?我可以改善现有代码吗? 问题答案: 您看过Apache Commons CSV吗? 使用注意事项 请记住,仅返回数据视图,这意味着原始对象不符合垃圾回收的条件,同时引用了任何视图

  • 问题内容: 我想拉出用户块。JSON结果将始终更改,有时将返回4个用户,有时将返回10个,等等。 问题答案: 使用JSONObject

  • 问题内容: 我有以下一段JSON: .NET代码的结果: 现在,我面临的问题是如何在JavaScript中创建一个Date对象。我所能找到的就是令人难以置信的正则表达式解决方案(许多包含错误)。 很难相信没有优雅的解决方案,因为这都是JavaScrip中的全部,我的意思是JavaScript代码试图读取应该被认为是JavaScript代码的JSON(JavaScript对象表示法),但现在看来,这

  • 问题内容: 前缀/ dir1 / dir2 / dir3 / dir4 / .. 如何在Java中从上述字符串中解析出值? 这里的前缀可以是: / usr / local / apache2 / resumes 问题答案: 如果要在字符处分割,该方法将起作用: 例如: 输出量 编辑 前缀为a 的情况,我们知道前缀是什么: 没有前缀的子字符串由方法组成。也就是说,然后通过运行。 输出: 重新编辑 如

  • 问题内容: 我想解析以下Json响应: 我尝试使用SIMPLE JSON解析器,但这对我不起作用: 问题答案: 输出: 评论: 我没有添加验证 [编辑] 加载json字符串的其他方法