Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not possible to access nested JSON MQTT data #2992

Open
acpenela opened this issue Jul 2, 2024 · 1 comment
Open

Not possible to access nested JSON MQTT data #2992

acpenela opened this issue Jul 2, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@acpenela
Copy link

acpenela commented Jul 2, 2024

Apache StreamPipes version

Other StreamPipes version (please specify below)

Affected StreamPipes components

Processing Elements

What happened?

When a MQTT adapter with a nested JSON data format is configured and started, the data isn't accessible in the pipeline nor possible to visualize in Dashboard.

Data schema configuration:

Screenshot 2024-07-02 at 14 43 20

Live preview of the data:
Screenshot 2024-07-02 at 14 57 21

Even using a pipeline element, such as javascript eval, we cannot access the properties of nested objects.

When creating dashboard visualizations, it´s not possible to access values from nested object properties.

How to reproduce?

Create a MQTT adapter in Streampipes with nested JSON data. In the pipeline try to view (using live preview) or access atribute values in the pipeline. After creating and starting both the adapter and the pipeline, try visualize object property values in dashboard visualizations.

Expected behavior

In the pipeline access values from nested object attributes.
In the Dashboard, access and visualize data using nested objects.

Additional technical information

Streampipes version - 0.95.0
On a dashboard, if we select the raw widget to display the message, the nested objects appear as java.util.map, which implies that they are passing through the pipeline , but we have no way of accessing the data.

Are you willing to submit a PR?

No, I don't want to submit a PR.

@acpenela acpenela added the bug Something isn't working label Jul 2, 2024
@tenthe
Copy link
Contributor

tenthe commented Jul 4, 2024

Hi @acpenela,

thanks for opening this issue.

Nested structures are not completely supported in all StreamPipes components. However, you can flatten the events in the adapter, enabling you to move nested properties to the top level.

In the schema editor (as shown in your screenshot), you can drag and drop the entries to the top level, placing them next to the timestamp. As a result your event shoud look like this:

{
  "eixo_1": 4
  "eixol posição": 0.15,
  "eixol_velocidade": 17.1,
  "eixol aceleração": 1.6,
  "eixo1_ temperatura": 50.7
  "timestamp": 171992775938
}

If you encounter any issues during this process, please let us know. Additionally, we are planning to include a flatten feature in the adapter to assist you with this process in the future.

It is also possible to change the runtime names of your properties by clicking on Edit field.

Cheers,
Philipp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants