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 · 4 comments
Open

Not possible to access nested JSON MQTT data #2992

acpenela opened this issue Jul 2, 2024 · 4 comments
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

@KunJakob
Copy link

@tenthe Can you show exactly how you do that? I am not able to flatten a JSON structure in the adapter in any way. Dragging the elements to the root does not cause a transformation in the output.

@tenthe
Copy link
Contributor

tenthe commented Feb 18, 2025

Hi @KunJakob,
Thanks for reaching out! I just tested it, and it looks like this feature is currently not working.

When I adjusted the structure using drag and drop, my event in the preview broke.

Image

Is this the same issue you're experiencing?

@KunJakob
Copy link

KunJakob commented Feb 18, 2025

@tenthe thats exactly what I've had, yes!

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

3 participants